我正在使用来自javax.persistence.Entity的@Entity来创建我的实体,在这种特殊情况下我必须创建一个transient属性(private Boolean assigned;)我正在使用org.springframework.data.repository中的PagingAndSortingRepository来创建接口来管理我的数据库实体。
我需要在List(OneToMany)属性为空时分配此值(布尔分配),所以我使用if子句以编程方式进行,问题是我必须在任何地方编写if子句并且我想知道是否可以某种方式自动分配该变量。
提前致谢。
答案 0 :(得分:1)
如果你需要在数据库中保留之前设置这个标志的值,我建议使用实体监听器@PrePersist
,basicallu让你有可能在持久化对象之前执行某些逻辑,在方法中您可以检查Array是否为空并将值设置为false。
还有其他事件,例如:
@PostLoad
实体加载到当前后执行 持久化上下文或实体已刷新。
@PostLoad
public void setAssigned() {
//Your logic for set to true or false the transient variable.
}
我认为这是一个选项,只能在提供商管理的一个地方执行逻辑。详细了解here