gpt4 book ai didi

java - 由 : org. hibernate.TransientObjectException : The given object has a null identifier: com. models.User on hibernate update 引起

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:07:10 27 4
gpt4 key购买 nike

我正在尝试更新数据库行。我有这个异常(exception)

Caused by: org.hibernate.TransientObjectException: The given object has a null identifier: com.models.User
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.getUpdateId(DefaultSaveOrUpdateEventListener.java:270)

这是我的 jsp 文件提交操作的 Controller 代码

// create new user object
User user = new User();
user.setName(name);
user.setEmail(email);
user.setActive(false);
_userDao.update(user);

这是我的 dao,它使用 hibernate session 工厂实用程序定义更新

public void update(User user) {
getSession().update(user);
}

//编辑:这是我对用户实体类的映射

 @Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "userId")
private Integer id;
@Column(nullable = false)
private String name;
@Column(unique = false, nullable = false)
private String email;
@Column(nullable = true)
private boolean active;

我无法更新电子邮件地址与在 jsp 输入表单中输入的地址相同的用户记录。请协助,这是我第一次尝试使用 hibernate sessionfactory 更新字段。

最佳答案

问题是您在不存在的实体上使用 update 方法。如果您想保存新创建的实体,您必须使用 savesaveOrUpdate

update 方法仅在实体已存在于数据库中时才有效。

关于java - 由 : org. hibernate.TransientObjectException : The given object has a null identifier: com. models.User on hibernate update 引起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38995790/

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