JPA 忽略按列值映射行
JPA ignore mapping row by column value
我正在制作一个基于JPA/Eclipselink和实体的应用程序,删除操作必须是合乎逻辑的(属性/列为真或假)以在数据库中保留日志。我想知道是否可以忽略关系 OneToMany 或 ManyToMany 中 "deleted" 为 "true" 的数据库行。我有类似于以下的实体:
@Entity
public class Employee {
@Id
@Column(name="EMP_ID")
private long id;
...
@OneToMany(mappedBy="owner")
private List<Phone> phones;
...
}
@Entity
public class Phone {
@Id
private long id;
@NotNull
@Column(name = "deleted")
private boolean deleted = false;
...
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="OWNER_ID")
private Employee owner;
...
}
提前致谢!
是的,您可以使用 @AdditionalCriteria
来达到这个目的:
@AdditionalCriteria("this.deleted = false")
我正在制作一个基于JPA/Eclipselink和实体的应用程序,删除操作必须是合乎逻辑的(属性/列为真或假)以在数据库中保留日志。我想知道是否可以忽略关系 OneToMany 或 ManyToMany 中 "deleted" 为 "true" 的数据库行。我有类似于以下的实体:
@Entity
public class Employee {
@Id
@Column(name="EMP_ID")
private long id;
...
@OneToMany(mappedBy="owner")
private List<Phone> phones;
...
}
@Entity
public class Phone {
@Id
private long id;
@NotNull
@Column(name = "deleted")
private boolean deleted = false;
...
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="OWNER_ID")
private Employee owner;
...
}
提前致谢!
是的,您可以使用 @AdditionalCriteria
来达到这个目的:
@AdditionalCriteria("this.deleted = false")