【问题标题】:Automatically assigning value to transient attribute自动为瞬态属性赋值
【发布时间】:2016-08-25 02:32:28
【问题描述】:

我正在使用 javax.persistence.Entity 中的 @Entity 来创建我的实体,在这种特殊情况下,我必须创建一个瞬态属性(分配的私有布尔值;),并且我正在使用 org.springframework.data.repository 中的 PagingAndSortingRepository 来创建接口来管理我的数据库实体。

当 List (OneToMany) 属性为空时,我需要分配此值(布尔分配),所以我使用 if 子句以编程方式执行此操作,问题是我必须在任何地方都编写 if 子句,我想知道是否可以以某种方式自动分配该变量。

提前致谢。

【问题讨论】:

    标签: java spring entity-framework jpa transient


    【解决方案1】:

    如果您需要在持久化到数据库之前设置此标志的值,我建议使用实体侦听器@PrePersist,基本可以让您在持久化对象之前执行某些逻辑,方法是您可以检查 Array 是否为空并将值设置为 false。 还有其他事件,例如:

    @PostLoad在实体加载到当前实体后执行 持久化上下文或实体已被刷新。

    @PostLoad
    public void setAssigned() {
       //Your logic for set to true or false the transient variable.
    }
    

    我认为这是一种选择,可以只在一个由提供商管理的地方执行逻辑。阅读更多关于它的信息here

    【讨论】:

    • 正是我所需要的。
    猜你喜欢
    • 2019-06-26
    • 2020-01-08
    • 1970-01-01
    • 2011-05-04
    • 2011-02-10
    • 2012-01-11
    • 2011-03-02
    • 2023-03-29
    • 1970-01-01
    相关资源
    最近更新 更多