gpt4 book ai didi

JPA 错误 : The entity has no primary key attribute defined

转载 作者:行者123 更新时间:2023-12-03 15:15:12 26 4
gpt4 key购买 nike

我在我的应用程序中使用 JPA。在其中一张表中,我没有使用主键(我知道它的设计很糟糕)。

现在生成的实体如下所述:

@Entity
@Table(name="INTI_SCHEME_TOKEN")
public class IntiSchemeToken implements Serializable {
private static final long serialVersionUID = 1L;

@Column(name="CREATED_BY")
private String createdBy;

@Temporal( TemporalType.DATE)
@Column(name="CREATED_ON")
private Date createdOn;

@Column(name="SCH_ID")
private BigDecimal schId;

@Column(name="TOKEN_ID")
private BigDecimal tokenId;

public IntiSchemeToken() {
}

public String getCreatedBy() {
return this.createdBy;
}

public void setCreatedBy(String createdBy) {
this.createdBy = createdBy;
}

public Date getCreatedOn() {
return this.createdOn;
}

public void setCreatedOn(Date createdOn) {
this.createdOn = createdOn;
}

public BigDecimal getSchId() {
return this.schId;
}

public void setSchId(BigDecimal schId) {
this.schId = schId;
}

public BigDecimal getTokenId() {
return this.tokenId;
}

public void setTokenId(BigDecimal tokenId) {
this.tokenId = tokenId;
}



}

这里在我的项目中,eclipse IDE 在这个类上显示错误标记(红色十字),错误是“ 实体没有定义主键属性”。

谁能告诉我,如何创建没有主键的实体?

谢谢。

最佳答案

你不能。一个实体必须有一个唯一的、不可变的 ID。它不必定义为数据库中的主键,但字段或字段集必须唯一标识该行,并且其值不能更改。

因此,如果实体中的一个字段或实体中的一组字段满足这些条件,请将其(或它们)设为实体的 ID。例如,如果用户无法在同一天创建两个实例,则可以将 [createdOn, createdBy] 设为实体的 ID。

当然,这是一个糟糕的解决方案,您应该真正更改架构并在实体中添加自动生成的单列 ID。

关于JPA 错误 : The entity has no primary key attribute defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13190997/

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