自动为瞬态属性赋值
Automatically assigning value to transient attribute
我正在使用来自 javax.persistence.Entity 的 @Entity 来创建我的实体,在这种特殊情况下,我必须创建一个瞬态属性(分配了私有布尔值;)并且我正在使用来自 org.springframework.data.repository 的 PagingAndSortingRepository 来创建接口来管理我的数据库实体。
我需要在 List (OneToMany) 属性为空时分配此值(布尔值分配),所以我使用 if 子句以编程方式执行此操作,问题是我必须在所有地方编写该 if 子句,我会想知道是否可以以某种方式自动分配该变量。
提前致谢。
如果你需要在持久化到数据库之前设置这个标志的值,我会推荐使用实体监听器@PrePersist
,basicallu给你在持久化对象之前执行某些逻辑的可能性,在您可以检查数组是否为空并将值设置为 false 的方法。
还有其他事件,例如:
@PostLoad
Executed after an entity has been loaded into the current
persistence context or an entity has been refreshed.
@PostLoad
public void setAssigned() {
//Your logic for set to true or false the transient variable.
}
我认为这是一种仅在提供商管理的地方执行逻辑的选项。阅读更多相关信息 here
我正在使用来自 javax.persistence.Entity 的 @Entity 来创建我的实体,在这种特殊情况下,我必须创建一个瞬态属性(分配了私有布尔值;)并且我正在使用来自 org.springframework.data.repository 的 PagingAndSortingRepository 来创建接口来管理我的数据库实体。
我需要在 List (OneToMany) 属性为空时分配此值(布尔值分配),所以我使用 if 子句以编程方式执行此操作,问题是我必须在所有地方编写该 if 子句,我会想知道是否可以以某种方式自动分配该变量。
提前致谢。
如果你需要在持久化到数据库之前设置这个标志的值,我会推荐使用实体监听器@PrePersist
,basicallu给你在持久化对象之前执行某些逻辑的可能性,在您可以检查数组是否为空并将值设置为 false 的方法。
还有其他事件,例如:
@PostLoad
Executed after an entity has been loaded into the current persistence context or an entity has been refreshed.
@PostLoad
public void setAssigned() {
//Your logic for set to true or false the transient variable.
}
我认为这是一种仅在提供商管理的地方执行逻辑的选项。阅读更多相关信息 here