gpt4 book ai didi

java - 当我尝试创建插入查询时如何使用 hibernate @EmbeddedId

转载 作者:行者123 更新时间:2023-12-01 05:30:49 24 4
gpt4 key购买 nike

我正在使用 hibernate,并且我已经使用 hibernate 在 java 端创建了实体。我的一个数据库表有多个列作为主键,hibernate 使用 @EmbeddedId 来处理这个问题。

我的问题是,当我创建插入查询时,我收到此错误:

“为:class com.iu.eblood.model.Eventtypeofevent 生成空 ID”

要设置 Id,我需要为此 EmbeddedId 创建一个对象,当我创建并设置此 Id 时,又出现了一个问题:

“在同一 SQL 语句中多次指定目标名称“EVENTID”以进行赋值”

我猜,错误的原因是我的Eventtypeofevent对象和EventtypeofeventPK对象(由hibernate为EmbeddedId创建的类)实际上显示了相同的属性。

这是我的类(class):

@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

最佳答案

我像这样使用了@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;
}

关于java - 当我尝试创建插入查询时如何使用 hibernate @EmbeddedId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9022510/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com