JPA忽略逐列值映射
Posted
技术标签:
【中文标题】JPA忽略逐列值映射【英文标题】:JPA ignore mapping row by column value 【发布时间】:2015-10-02 09:19:25 【问题描述】:我正在制作一个基于JPA/Eclipselink 和实体的应用程序,删除操作必须符合逻辑(属性/列真或假)才能在数据库中保留日志。我想知道是否可以忽略在 OneToMany 或 ManyToMany 关系中“已删除”为“真”的数据库行。我有类似于以下的实体:
@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;
...
提前致谢!
【问题讨论】:
【参考方案1】:是的,您可以为此目的使用@AdditionalCriteria
:
@AdditionalCriteria("this.deleted = false")
【讨论】:
以上是关于JPA忽略逐列值映射的主要内容,如果未能解决你的问题,请参考以下文章
Spring Boot JPA @JoinTable 与现有映射表忽略 @GeneratedValue