我正在使用hibernate,我使用hibernates在java端创建了实体。 我的一个数据库表有多个列作为主键,而hibernate使用@EmbeddedId来处理它。
我的问题是,当我创建一个插入查询时,我收到此错误:
“为...生成null id:类com.iu.eblood.model.Eventtypeofevent”
设置Id,我需要为此EmbeddedId创建一个objejt,当我创建并设置此Id时, 出现了另一个问题:
“目标名称”EVENTID“在同一SQL语句中被赋值多次”
我猜,错误的共鸣是我的Eventtypeofevent对象和EventtypeofeventPK对象(由hibernate为EmbeddedId创建的类)实际上显示了相同的属性。
这是我的班级:
@Entity
public class Eventtypeofevent implements Serializable {
private static final long serialVersionUID = 1L;
private EventtypeofeventPK id;
private Timestamp createddate;
private Timestamp deleteddate;
private String isactive;
private Event event;
private Eventtype eventtype;
public Eventtypeofevent() {
}
@EmbeddedId
public EventtypeofeventPK getId() {
return this.id;
}
public void setId(EventtypeofeventPK id) {
this.id = id;
}
....... getter and setter
和EmbeddedId的其他类:
@Embeddable
public class EventtypeofeventPK implements Serializable {
//default serial version id, required for serializable classes.
private static final long serialVersionUID = 1L;
private long eventid;
private int eventtypeid;
...... getter and setter
答案 0 :(得分:0)
我这样使用了@EmbeddedId,我不确定它是否有帮助:
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name = "orgId", column = @Column(name = "ORG_ID", nullable = false, precision = 12, scale = 0)),
@AttributeOverride(name = "configId", column = @Column(name = "CONFIG_ID", nullable = false, precision = 9, scale = 0)) })
public [EmbeddedId Object] getId() {
return id;
}