我有一个映射的父类(super class),它有一个字段,我的数据库中的某些表共享。
我希望用 @Transient 注释这个字段,所以大多数实体都会忽略它,但是在子实体上 de-@Transient 或 un-@Transient 它。
这可能吗?
谢谢,
伊多布
最佳答案
您也许可以使用鉴别器模式
http://docs.jboss.org/hibernate/orm/3.3/reference/en-US/html/mapping.html
您必须设置一个父父类(super class),然后对其进行子类化,例如
ClassWithSharedFields
ClassExtensionThatUpdatesCertainFields
ClassExtensionThatReadsCertainFields
然后,
ClassExtensionThatReadsCertainFields
可以将您不打算更新的字段指定为只读。这可能是一个含糊的建议,因此如果您需要更具体的帮助,可以提供一些更具体的示例,说明您的域类需要如何与您的数据库相关联。
关于 hibernate 覆盖@transient,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13052717/