在这个项目中,我使用了带有Hibernate实现的JPA。所有实体都是基于注释的,并在persistence.xml中列出。
所有实体都打包到jar中。
我需要为几个属性(在所有实体中)定义一个类型定义函数,这些属性是枚举类型的字符串。在DB中,列是varchar。我如何才能做到这一点?
我可以通过添加hbm.xml和hibernate-cfg.xml来实现这一点吗?
提前谢谢。
发布于 2012-05-15 20:38:16
直接从the documentation
@org.hibernate.annotations.TypeDef和@org.hibernate.annotations.TypeDefs允许您声明类型定义。这些注释可以放在类或包级别。请注意,这些定义对于会话工厂是全局的(即使是在类级别定义的)。如果在单个实体上使用该类型,则可以将定义放在该实体本身上。否则,建议将定义放在包级别。
发布于 2012-07-25 15:17:05
如果您不能更改类,但可以更改hibernate配置,我认为您可以将hibernate.mapping.precedence更改为" hbm,class",然后添加hbm文件,其中包含相关类的注释中的所有信息。有一种用于指定UserType或EnumType的hbm语法。如果使用UserType类,还必须定义该类。
在相信我的话之前,你可能想在测试项目中尝试一下,我假设它会工作,但我不确定。
将所有的持久性信息从注释复制到hbm可能是一件痛苦的事情,并且会重复信息。如果可能,请尝试找到一种方法将注释添加到类本身。
https://stackoverflow.com/questions/10598396
复制相似问题