gpt4 book ai didi

hibernate - @GenerateValue(strategy = GenerationType.AUTO) 没有按预期工作

转载 作者:行者123 更新时间:2023-12-02 21:55:33 25 4
gpt4 key购买 nike

我正在尝试将对象持久保存到数据库中。不断收到“列 ID 无法接受空值错误”。我的对象如下所示:

    @Entity
public class TestTable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id = 0;

@Column(nullable=false, length=256)
private String data = "";

public Integer getId() {
return id;
}

public void setId(Integer id) {
this.id = id;
}

public String getData() {
return data;
}

public void setData(String data) {
this.data = data;
}

}

我的持久功能:

public static synchronized boolean persistObject(Object obj){
boolean success = true;
EntityManager em = null;
EntityTransaction tx = null;
try{
em = getEmf().createEntityManager();
tx = em.getTransaction();
tx.begin();
em.persist(obj);
tx.commit();

} catch (Exception e){
success = false;
} finally{
try{
em.close();
} catch(Exception e){
//nothing
}
}
return success;
}

最佳答案

您可以使用 GenerationType.TABLE。这样,jpa 使用序列表进行 id 分配,您可能永远不需要生成序列或自动增量值或降低可移植性的触发器。

另请注意,在 java 中 int 类型默认以 0 启动,因此您也可以摆脱它。

关于hibernate - @GenerateValue(strategy = GenerationType.AUTO) 没有按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5129552/

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