这是一个情况下,我想在我的播放项目来表示:
table clients {
client_id (pk),
description
}
table items {
client_id (fk, pk),
item_id (pk)
}
在“项目”表我想有一个复合主键,将组成联合CLIENT_ID和ITEM_ID的。 我已阅读JPA文档以及很多职位上的话题,但一切都一次又一次地失败。 这是很多版本我都试过之一 - 最接近JPA文档。
@Entity
@Table(name = "items")
public class Items extends Model {
ItemsPK primaryKey;
public Items() {
}
@EmbeddedId
public ItemsPK getPrimaryKey() {
return primaryKey;
}
public void setPrimaryKey(ItemsPK pk) {
primaryKey = pk;
}
}
@Embeddable
public class ItemsPK implements Serializable {
private long itemId;
private Client client;
public ItemsPK() {
}
@Column(name = "item_id")
@GeneratedValue(strategy = GenerationType.AUTO)
public long getItemId() {
return itemId;
}
public void setItemId(long itemId) {
this.itemId = itemId;
}
@ManyToOne
@JoinColumn(name = "client_id", nullable = false)
public Client getClient() {
return client;
}
public void setClient(Client client) {
this.client = client;
}
//public int hashCode() {...
//public boolean equals(Object obj) {...
}
上面的代码(以及其他许多不同的设置)产生以下游戏推出时的错误:
了java.lang.RuntimeException:在com.avaje.ebeaninternal:错误读数models.ItemsPK注释在com.avaje.ebeaninternal.server.deploy.parse.ReadAnnotations.readAssociations(ReadAnnotations.java:73)〜[NA ebean.jar] .server.deploy.BeanDescriptorManager.readDeployAssociations(BeanDescriptorManager.java:1100)〜[ebean.jar:NA]
我没有什么线索可能是错我的代码。 我开始认为这是一个错误PLAY。 有任何想法吗?