访问JPA LifecycleEvent中的非映射属性

时间:2019-01-04 08:01:02

标签: java spring spring-data-jpa

我有一个具有非映射属性的实体和一个LifeCycleCallBback侦听器。 在PrePersist / PreUpdate回调中,non-mapped属性为null,但在触发保存之前,已设置此属性。

我尝试使用@Transient对其进行注释,但它也无法正常工作。我试图将属性静态地提供给侦听器,但它不支持繁重的加载。

public abstract class AbstractA {
    private Object a;
    public void setA(Object a){
        this.a = a;
    }
    public Object getA(){
        return a;
    }
}

@Entity
@EntityListeners(MyListener.class)
public class B extends AbstractA {
    //...
}

public class BService {
    public B save(B b){
        b.setA(object); // Object is not null and object.getA returns the good value
        bRepository.saveAndFlush(b); // Triggers the prePersist Callback
    }
}

public class MyListener {
    @PrePersist
    public void prePersist(AbstractA a){
        a.getA(); // here a.a is null
    }
}

0 个答案:

没有答案