@PrePersist
메서드를 사용하여 GenericEntity
클래스를 가지고 있는데 엔티티를 DB에 저장하기 직전에 타임 스탬프를 설정합니다. 그것은 잘 작동하지만 나는 DAO 클래스를 테스트하려고 할 때 문제에 직면하고있다. 엔터티를 저장할 때 @PrePersist
은 명시 적으로 created
필드 값을 덮어 씁니다. 테스트 환경에서 @PrePersist를 옵션으로 설정하여 created
필드 값을 명시 적으로 설정할 수 있습니까?JPA @PrePersist 테스트 환경에서
@MappedSuperclass
public abstract class GenericEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", updatable = false, nullable = false)
private Long id;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "created", nullable = false)
private Date created;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@PrePersist
protected void onCreate() {
created = new Date();
}
/*
* Used for tests
*/
public void setCreated(Date created) {
this.created = created;
}
public Date getCreated() {
return created;
}
}
사용자 EntityListeners : 나는 문제를 해결하는 가장 쉬운 방법은 간단 널 (null) 검사라고 생각 https://docs.jboss.org/hibernate/entitymanager/3.5/reference/en /html/listeners.html – fangdi
persistence.xml에 2 개의 영속 단위가 있습니다. GenericEntity 클래스에 대해 다른 EntityListener를 사용하도록 이들을 구성하는 방법은 무엇입니까? – Justas