私はJavaをよく知っていて、現在ChatProgrammに取り組んでいます。 だから私はテーブルを作成したいインジェクションを使用してテーブルの連絡先のID(USERNUMBER)で埋め込まれたメッセージ。 ここでの私のメッセージのクラス:Embeddable/ManyToOne/OneToMany not working
@Embeddable
@Entity(name = "MESSAGE")
public class Message implements Serializable {
@ManyToOne
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "INCOME_MESSANGE", nullable = false)
private String incomingMessage;
@EmbeddedId
@JoinColumn(name = "USERNUMBER", nullable = false)
private Contact contact;
ChatApplicationRemote chatApplicationRemote;
public Message(String ip, String msg) throws IOException {
incomingMessage = msg;
contact = chatApplicationRemote.getcontactByIP(ip.toString());
}
public Message(){
}
public String getIncomingMessage() {
return incomingMessage;
}
public Contact getContact() {
return contact;
}
そして、ここに私の連絡先:私のメッセージでそう
@Entity(name = "CONTACTS")
@Embeddable
public class Contact implements Serializable {
/**
*
*/
private static final long serialVersionUID = -6855140755056337926L;
@Column(name = "NAME", nullable = false)
private String name;
@Column(name = "PRENAME", nullable = false)
private String vorname;
@Column(name = "IP", nullable = false)
private String ip;
@Column(name = "PORT", nullable = false)
private Integer port;
@Id
@OneToMany(mappedBy = "Message.incomingMessage")
@Column(name = "USERNUMBER", nullable = false)
private String usernumber;
public Contact(String usernumber, String name, String vorname, String ip, String port) {
super();
this.usernumber = usernumber;
this.name = name;
this.vorname = vorname;
this.ip = ip;
this.port = Integer.parseInt(port);
}
public Contact(){
}
public String getUsernumber() {
return usernumber;
}
//......
、私は2つのエラーを取得: @ManyToOneはスロー:ターゲットエンティティ「のjava.langを.String "はエンティティではありません @EmbeddedID throws:de.nts.data.Contactが埋め込み可能としてマップされていません
私はしばらくの間googled ...と私が持っていなかったaboutm.xml 。埋め込みIDクラスにequals()およびhashcode()のメソッド定義を含める必要があり、orm.xml属性 "usernumber"にはこのコンテキストで無効なマッピングタイプがあります。
誰でもお手伝いできますか?
基本を学ぶ必要があります。埋め込み可能クラスは、エンティティの状態の一部を構成するフィールドの集合です。エンティティはクラスであり、IDを持ち、これはテーブルにマップされ、他のエンティティとの関連付けを持つことができます。 EmbeddableとEntityで同時にクラスに注釈を付けると、意味をなさないので、達成したいことを理解するのは難しいです。 Stringとの関連付けは全く意味がありません。私は、単にメッセージエンティティとOneToManyの関連付けを持つContactエンティティが必要な気がします。 –