gpt4 book ai didi

java - 在 hibernate 中设置自增字段的id没有正确保存

转载 作者:行者123 更新时间:2023-11-30 23:22:57 26 4
gpt4 key购买 nike

账户类别:

@Entity

@Table(name = "Account")

public class Account {

...

private String accountId;
...

@Id
@GeneratedValue
@Column(name = "accountId")
public String getAccountId() {
return accountId;
}

public void setAccountId(String accountId) {
this.accountId = accountId;
}

...

如果我尝试这样做:

temp = new Account();

temp.setAccountId(tempId); //
session.save(temp);
System.out.println("accountid...." + temp.getAccountId());

它打印一个不等于 tempId 的 accountId,我认为是因为它是表中的一个自增字段

另一方面,如果我这样做:

temp = new Account();

session.save(temp);
temp.setAccountId(tempId);
session.merge(temp);

我得到异常:

org.hibernate.HibernateException: identifier of an instance 
of ... was altered from 1244 to 1221

如何覆盖 ID?

最佳答案

你不必设置 id,当你持久化你的实体时,hibernate 会自动分配 id(根据用生成的值注释定义的策略)。

不确定,但是您正在为您的想法使用字符串值,它如何递增?您不想改用 Long 吗?

关于java - 在 hibernate 中设置自增字段的id没有正确保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14750297/

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