类的继承情况是这样的:
    目录:SiteDirectory继承Directory
    目录关系:SiteDirectorySubjection继承DirectorySubjectionSiteDirectory跟SiteDirectorySubjection的关系是一对多,我配置成这样:@OneToMany(mappedBy="directoryId", cascade={CascadeType.REMOVE}, fetch=FetchType.LAZY)
@OrderBy("id ASC")
public Set<SiteDirectorySubjection> getSubjections() {
return subjections;
}
但是假如说我现在有另外两个类
    部门:Org继承Directory
    部门关系:OrgSubjection继承DirectorySubjection
这样的话我又得在Org里配置上一对多的关系,我的Directory作为一个抽象出来的目录类,下面会有不少子类,那我每个类都要重复配置上这样的一对多关系。怎么在Directory里面配置上跟DirectorySubjection的一对多关系,下面的子类继承之后就不需要每个都再重复配置我去掉SiteDirectory的配置,然后在Directory里加上@OneToMany(mappedBy="directoryId", cascade={CascadeType.REMOVE}, fetch=FetchType.LAZY)
@OrderBy("id ASC")
public Set<DirectorySubjection> getSubjections() {
return subjections;
}系统报错:org.hibernate.AnnotationException: Use of @OneToMany or @ManyToMany targeting an unmapped class: com.lmiky.cms.site.pojo.SiteDirectory.childSubjections[com.lmiky.jeaf.directory.pojo.DirectorySubjection]

解决方案 »

  1.   

    bang ding 起来
    沉了就木人给你回答了
      

  2.   

    @OneToMany配置是与@ManyToOne成对出现的,你在DirectorySubjection配置了@ManyToOne了吗
      

  3.   


    可以单方向的,重点是不是这个问题,从错误上看,Hibernate让SiteDirectory跟DirectorySubjection关联了,但是我要的是SiteDirectory跟SiteDirectorySubjection关联。
      

  4.   

    感觉你前后矛盾啊,既然要SiteDirectory跟SiteDirectorySubjection关联,为什么用父类跟DirectorySubjection进行关联啊,你在分析分析,最好把类图画出来
      

  5.   

    是这样的,Directory是一个抽象出来的目录类,下面会有很多子类,同样的DirectorySubjection是一个抽象出来的目录关系类,下面也会有很多子类
    这样的话,我每个子类都要配置一下跟自己的目录关系类的对应关系
    所以我是想可不可以在Directory里配置,下面的子类就不用再一个个配置了
      

  6.   

    SiteDirectorySubjection那边你没指定外键属性。点到了,接下来自己搞定吧,全告诉你了 没长进。
      

  7.   

    我详细贴出代码说下吧public class Directory extends BasePojo {
            private Set<? extends DirectorySubjection> subjections; //目录的上级目录
    private Set<? extends DirectorySubjection> childSubjections; //目录的下级目录
    ...
    }
    public class DirectorySubjection extends BasePojo {

    private long directoryId; //目录ID
    private long parentDirectoryId; //上级目录ID
    ...
    }
    public class SiteDirectory extends Directory {
    ...
    }
    public class SiteDirectorySubjection extends DirectorySubjection {
    ...
    }
    以前用xml方式,也没用泛型的时候,可以这样写<class name="XXX.XXX.XXX.XXX.pojo.SiteDirectory" table="site_directory">
    ...
    <set cascade="delete" inverse="true" lazy="true" name="subjections" table="site_directory_subjection" order-by="id">
    <key column="directoryId" />
    <one-to-many class="XXX.XXX.XXX.pojo.SitebDirectorySubjection" />
    </set>
    <set cascade="delete" inverse="true" lazy="true" name="childSubjections" table="site_directory_subjection">
    <key column="parentDirectoryId" />
    <one-to-many class="XXX.XXX.XXX.pojo.SiteDirectorySubjection" />
    </set>
    ...那如果我用注解方式,要怎么写