首页 > 解决方案 > 如何将属性的值传播到属于我的类的其他类型的属性?

问题描述

我有这些课程:

@MappedSuperclass
public abstract class AbstractClazz {

    @Id
    protected int id;
    protected Instant createdAt;
    protected String createdBy;

    //getters and setters

    @PrePersist
    private void prePersist() {
        setCreatedAt(Instant.now());
    }

}

public class ConcreteClazzA extends AbstractClazz {

    private String name;

    //getters and setter
}

public class ConcreteClazzB extends AbstractClazz {

    private ConcreteClazzA clazzA;

    private String name;

    //getters and setter
}

当我坚持 ConcreteClazzA 时,如何在 ConcreteClazzB 设置 createdBy(获取当前用户)?我不能使用@PrePersist,因为我必须保持组件的独立性。

如何在两个类中设置相同的 createdAt?

标签: javahibernatejpa

解决方案


使用MappedSuperclass注释

@MappedSuperclass
public abstract class AbstractClazz {

推荐阅读