2012-02-01 125 views
0

新手問題。spring + hibernate共享屬性和註解

我有這樣定義了一些春/ Hibernate的實體bean:

@RooJavaBean 
@RooJpaEntity 
public class MyEntity {  
    @Id 
    @GeneratedValue(generator = "uuid") 
    @GenericGenerator(name = "uuid", strategy = "uuid2") 
    @org.hibernate.annotations.Type(type="uuid-char") 
    private String id; 

    ... 
} 

我想我所有的實體具有精確定義像上面的ID字段。 在實體bean之間共享屬性的最佳方式是什麼? (我不想擴展一個通用的抽象類,並且可能不會回到aop)。

有沒有一些Hibernate的「實體模板」來調整?我可以只通過註釋嗎?

回答

1

不,除了從普通的超類(@MappedSuperclass)繼承類以外,沒有任何方法可以在Hibernate和核心Java中使用。

不可能的原因是你需要一個帶該字段的類(java),因此hibernate不能修改標準的java行爲。

但在AspectJ的幫助下,您可以。有點像Spring-Roo添加id值,你可以在自己的AspectJ建議中做到這一點。

我記得一些AspectJ Intertype聲明,它將@Id...private Spring id字段添加到每個具有@Entity批註的類。


另一方面,我覺得這是過度工程。我個人在我的IDE中使用模板,所以我不必編寫所有的東西。這對我來說很好。

+0

謝謝。關於「我記得一些AspectJ Intertype聲明,它將Id ... private Spring id字段添加到每個具有實體註釋的類。」你有任何代碼示例? – gpilotino 2012-02-01 23:42:57