为什么Hibernate会忽略package-info.java?

时间:2012-05-17 14:39:54

标签: java hibernate annotations usertype

我正在尝试在包级别上使用Hibernate @TypeDef注释,正如Hibernate documentation中所描述的那样。 我正在使用Hibernate 3.6Spring 3.0.7。代码编译,package-info.class在类路径中,但Hibernate看不到它。

如果我将@TypeDef放在课程级别上,它会起作用,但如果我放入package-info则不行。我试图谷歌但找不到任何有用的东西。

谢谢!

4 个答案:

答案 0 :(得分:6)

您可能需要添加

<resource package="com.foo.bar.thepackage"/>

到你的Hibernate配置文件,或者拨打configuration.addPackage("com.foo.bar.thepackage")

答案 1 :(得分:2)

对于Hibernate 4,您必须添加

<mapping package="com.foo.bar.thepackage">

到您的Hibernate配置文件。

答案 2 :(得分:2)

如果使用JPA,在persistence.xml中使用

<class>com.foo.bar.thepackage</class>
也应该有效。

答案 3 :(得分:2)

我认为这是由于Spring中的一个错误,它不会扫描package-info中的注释,而只会扫描使用@ Entity,@ Embeddable或@MappedSuperclass注释的类上的注释。请参阅https://jira.springsource.org/browse/SPR-8589