2017-04-11 7 views
0

사용자 정의 "lastUpdatedBy"속성 (다른 표준 속성과 함께)을 여러 도메인 클래스에 추가하여 특성을 만들었습니다. 모든 것이 데이터베이스에서 제대로 작동하지만 EhCache 디스크 저장소는 springSecurityService에서 NotSerializableException을 제공합니다. 내가 가지고있다Grails 3은 특성에 springSecurityService를 사용합니까? 일련 화 오류 -

교장을 얻으려면. 사용자 이름.

서비스를 일시적으로 지정하는 방법이 있습니까 (정적 일시적인 = []는 도움이되지 않습니다), 아니면 막 다른 길에 있습니까? 어쨌든 도메인 클래스 내에서 서비스를 참조하는 것은 조금 어리 석다.하지만 저장하기 직전에 사용자 이름을 얻는 것이 더 좋고 실행 가능한 방법은 무엇일까요?

+1

도메인 클래스에 'transient springSecurityService'를 정의해야합니다 – injecteer

답변

0

좋습니다. 알아 냈습니다. 도메인 클래스 중 하나에는 복합 키가 있었으므로 Serializable을 구현하도록 태그되었습니다. 이것이 보통 id 필드를 유지하기 위해 변환되고 "Serializable 구현"이 제거되면 문제가 사라졌습니다.

0

필드를 일시적인 필드로 선언하면됩니다.

class MyDomain { 

    // other stuff omitted 

    transient SpringSecurityService springSecurityService 

} 

이 작업은 직렬화로 전환 될 때 수행됩니다.