新手问题。
我有一些像这样定义的Spring / 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“实体模板”进行调整?我可以通过注释来完成吗?
答案 0 :(得分:1)
除了从公共超类(@MappedSuperclass
)继承类之外,Hibernate和核心Java都没有办法。
为什么不可能的原因是你需要一个带有该字段的类(java),因此hibernate不能修改标准的java行为。
但是在AspectJ的帮助下你可以。有点像Spring-Roo,可以在自己的AspectJ建议中添加id
值。
我想到了一些AspectJ Intertype声明,它将@Id...private Spring id
字段添加到每个具有@Entity
注释的类中。
另一方面,我觉得这是过度设计的。我个人在我的IDE中使用模板,所以我不必写所有的东西。这对我来说很好。