2013-02-01 105 views
1

我想在Groovy Mixin中定義一個JPA持久屬性,然後在多個實體類中使用它。我無法得到這與JPA註釋和Hibernate一起工作 - 有沒有人用這種組合成功?Groovy Mixin持久屬性與JPA

我有一個示例Maven項目,它顯示了我想要做的事情和一個單一的JUnit測試,它定義了我想要的行爲。

https://github.com/gilday/groovy-mixin-jpa-test

簡述:

@Category(Person) class HasPreferences { 

    @ElementCollection 
    final Collection<Preference> preferences = [] 
} 

@Entity 
@Mixin(HasPreferences) 
class Person { 

    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    long id 

    String name 
} 

回答

1

由於@Mixin是動態的,我懷疑JPA將能夠找到您的混合特性。我認爲你需要一些編譯時代碼,比如@Delegate。即便如此,JPA也會嘗試持續生成的屬性。有一個discussion in groovy mailing列表關於創建一個@Trait註釋,這可能是你想要的。

+0

我與'@ Trait'混合成功。我的建議是避免它們。 – Snekse