2015-05-05 65 views
1

如何才能在實體保存之前執行一些代碼?spring-data-neo4j有一個beforeSave方法嗎?

@NodeEntity 
public class Person { 

    @Transient 
    String password 
    String passwordHash 

    public void beforeSave() { // I made this method name up. 
     if (password != null && !password.isEmpty()) { 
      passwordHash = AuthenticationService.encodePassword(email, password); 
      password = null; 
     } 
    } 
} 

我是否需要使用AspectJ或使用註釋的簡單方法?

我已經添加了以下相關:

compile("org.springframework.data:spring-data-neo4j:3.3.0.RELEASE") 
compile("org.springframework.data:spring-data-neo4j-rest:3.3.0.RELEASE") 
+0

你在問什麼版本的SDN? – Luanne

+0

@Luanne,我編輯了問題並添加了我正在使用的依賴關係。 – Spider

+0

@Spider你可以看看[我的問題](https://stackoverflow.com/questions/30106772/sdn-beforesaveeventt-capture-events-before-save-entities-t),你可以看到一個SDN beforeSave事件例。 – troig

回答

0

在SDN3,你有BeforeSave ApplicationEvents如春的數據項目的其餘部分。

http://docs.spring.io/spring-data/data-neo4j/docs/3.3.0.RELEASE/reference/html/#lifecycle_events

+0

感謝您的回答。那麼,這是否意味着我可以實現一個如此簡單的接口,並將一個beforeSave()事件添加到實際的bean中?當我們設置Neo4J時,我們是否需要單獨收聽beforeSave事件?似乎有點乏味,並將邏輯從關注點分離出來。你怎麼看? – Spider

相關問題