我正在使用 hibernate 在汽车和人员表之间进行一对一映射。但一个人可能有车,也可能没有车。现在,在使用 hibernate 条件从人员表中获取记录时,我只想获取那些拥有汽车的人,即仅在人员表中存在汽车表中对应条目的那些条目。如何使用 hibernate 标准/别名来完成此操作?
下面是一段代码。请帮助编写获取结果所需的条件或别名:
@Getter
@Setter
@Entity
@Table(name = "Person")
public class Person implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "Person_ID")
private Long personId;
@OneToOne(mappedBy = "personAsset", cascade = CascadeType.ALL)
private Car car;
}
@Getter
@Setter
@Entity
@Table(name = "Car")
public class Car implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "Car_ID")
private Long carId;
@OneToOne
@JoinColumn(name = "Person_ID")
private Person personAsset;
}
最佳答案
您正在寻找的是@OneToOne
注释上的cascadeTypeorphanRemoval=true
。
这是你的类(class):
@Getter
@Setter
@Entity
@Table(name = "Car")
public class Car implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "Car_ID")
private Long carId;
@OneToOne(fetch=FetchType.EAGER , cascade=CascadeType.ALL, orphanRemoval=true)
@JoinColumn(name = "Person_ID")
private Person personAsset;
}
关于java - Hibernate 一对一条件获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59152435/