Metadata.create 之后在实体实例上设置瞬态属性的最佳方法

Best way to set transient attribute on entity instance after Metadata.create

我目前正在设置 jpql 查询的结果瞬态属性e 的几个实体实例上使用BeforeDetachEntityListener。 由于我也在使用 Metadata.create 来创建它们,我希望能够在创建它们后进行相同的操作。处理这种情况的最佳方法是什么?

您可以使用 @PostConstruct

在创建对象时设置值
public class MyEntity extends StandardEntity {

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "USER_ID")
    protected User creator;

    @PostConstruct
    protected void init() {
       setCreator(AppBeans.get(UserSessionSource.class).getUserSession().getUser());
    }
}

有关如何在实体中初始化数据的更多信息,请参阅 5.8.3.1 Entity Fields Initialization and 5.8.3 Assigning Initial Values

上的文档