gpt4 book ai didi

java - hibernate 一对一,没有给定标识符的行存在异常

转载 作者:太空狗 更新时间:2023-10-29 23:02:31 27 4
gpt4 key购买 nike

我需要两个实体之间的链接,所以我使用一对一

@Entity
@Table(name = "T_USER")
public class User implements Serializable {

@Id
@Column(name = "user_id")
private int userId;

@Column(name = "login")
private String login;

@OneToOne(optional = true)
@JoinColumn(name="login", referencedColumnName="person_id", nullable = true, insertable = false, updatable = false)
private Person person;
}

@Entity
@Table(name = "T_PERSON")
public class Person implements Serializable {
@Id
@Column(name = "person_id")
private String personId;

@Column(name = "pin")
private String pin;
}

如果表 T_USER 中没有特定 PERSON 的项目,user.getPerson 抛出异常:

org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [packagename.com.entity.Person#scabriou]

但是如果我在数据库中的两个表之间有引用, setter/getter 就可以工作!

最佳答案

我不能说这是否是最佳解决方案,但您可以使用 @NotFound 注释。例如

@NotFound(action = NotFoundAction.IGNORE)
private Person person;

我相信 person 将保持 null 并且不会抛出异常。

关于java - hibernate 一对一,没有给定标识符的行存在异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8839323/

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