我使用JPA和Spring的某些部分(如事務管理,JPA存儲庫),但我不使用Spring進行依賴注入,而是將Spring部分視爲POJO對象。到目前爲止,我的工作很好:我有運行時生成的JPA存儲庫類,事務由Spring類管理。以編程方式添加JPA EntityListener/Spring Data AuditingEntityListener以編程方式
但是,我似乎無法弄清楚如何讓JPA審計偵聽器工作。
例如,這裏是我的BaseEntity
定義EntityListener
類和審計領域:
@MappedSuperclass
@EntityListeners({ AuditingEntityListener.class })
public class BaseEntity implements Serializable
{
@CreatedDate
@Field(index = Index.YES, store = Store.YES)
@Column(name = "date_created")
@Temporal(TemporalType.TIMESTAMP)
private Date dateCreated;
@CreatedBy
@Column(name = "created_by")
private Long createdBy;
//other stuff
}
你可以看到我指定的春天AuditEntityListener
類。應用中的所有其他實體類都會擴展這個BaseEntity
類。
然後,我有一個實現AuditorAware
類:
public class JpaAuditConfiguration implements AuditorAware<Long>
{
@Override
public Long getCurrentAuditor()
{
//pretend there's real logic here...
return new Long(0);
}
}
現在,因爲我沒有使用Spring或Spring數據來引導自己,我需要一種方法來註冊這個JpaAuditConfiguration
與AuditingEntityListener
。
我的問題:如何以編程方式註冊JpaAuditConfiguration
和AuditEntityListener
?
如果有幫助,我使用Spring類如LocalContainerEntityManagerFactoryBean
(以編程方式創建EntityManagerFactory
)和PersistenceUnitPostProcessor
以編程方式執行JPA配置的其餘部分。我正在尋找允許我做上面提到的實體審計監聽器註冊的鉤子。
我沒有使用任何orm.xml
或persistence.xml
JPA配置文件。
我該怎麼做?
謝謝!
我沒有使用Spring啓動或Spring的DI,所以我不認爲這些註釋將任何區別。 – user3303372
那麼你如何加載持久性上下文? – kuhajeyan