org.hibernate.AnnotationException:Collection既没有泛型类型,也没有OneToMany.targetEntity()

Jer*_* S. 9 java annotations hibernate hibernate-tools

我使用Hibernate Tools来生成我的Hibernate POJO映射.

不幸的是,Hibernate工具生成的代码似乎不起作用,我得到了例外

org.hibernate.AnnotationException:Collection既没有泛型类型,也没有OneToMany.targetEntity()

生成异常的代码部分是

/**
 * ClassFlag generated by hbm2java
 */
@Entity
@Table(name = "class_flag", catalog = "incbszdb")
public class ClassFlag implements java.io.Serializable {

    ....
    /* HERE */
    private Set classFlagI18ns = new HashSet(0);

    /* HERE */
    public void setClassFlagI18ns(Set classFlagI18ns) {
      this.classFlagI18ns = classFlagI18ns;
    }

}  
Run Code Online (Sandbox Code Playgroud)

根据这篇文章

http://www.mkyong.com/hibernate/org-hibernate-annotationexception-collection-has-neither-generic-type-or-onetomany-targetentity/comment-page-1/#comment-67404

这篇文章

http://www.mkyong.com/hibernate/hibernate-error-collection-has-neither-generic-type-or-onetomany-targetentity/

您必须亲自更改Hibernates生成的代码.

这是我想避免的一件事.任何想法可能是什么问题?

问候

JS

Jer*_* S. 15

我找到了一个有效的解决方案.

只需选中"使用Java 5语法",如附带的屏幕截图和Hibernate工具中所示,为集合生成正确的泛型类型.

在此输入图像描述


Boz*_*zho 8

异常告诉你的是明确的 - 你的@OneToMany集合应该指定一个具体的类型(Set<AnotherEntity>)或者具有@OneToMany(targetEntity=AnotherEntity.class)