Tôi cần một mối liên hệ giữa hai thực thể, vì vậy tôi sử dụng một one-to-oneHibernate one-to-one, Không liên tiếp với các định danh cho tồn tại ngoại lệ
@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;
}
Nếu không có mục cho một particulary PERSON trong bảng T_USER, user.getPerson ném một ngoại lệ:
org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [packagename.com.entity.Person#scabriou]
Nhưng nếu tôi có tham chiếu giữa 2 bảng trong db, công cụ getter hoạt động!
Điều gì, chính xác, là câu hỏi của bạn? – mcfinnigan
Tôi không muốn có ngoại lệ khi tôi gọi user.getPerson nếu không có tham chiếu nào trong bảng người dùng cho người dùng. Tôi cần phải kiểm tra nếu user.getPerson không phải là null Tôi muốn user.getPerson(). GetPin(). – BasicCoder
không có trên một đọc, chọn. – BasicCoder