Hibernate:使用不同的数据库表进行多对一映射

时间:2016-03-16 09:35:42

标签: java mysql hibernate hibernate-mapping

我有两个课程:UserBranch。许多用户可以拥有一个分支。 即这是多对一的关联。 我的users表位于名为fi的第一个数据库中,第二个数据库中的branch表名为fi-master

我遇到了这个错误:

Caused by: org.hibernate.MappingException: An association from the table user refers to an unmapped class: com.hcl.fi.web.model.Branch
    at org.hibernate.cfg.Configuration.secondPassCompileForeignKeys(Configuration.java:1134)
    at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1052)
    at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:997)
    at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:720)
    at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:188)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1571)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1509)
    ... 100 more

我如何映射它们?

user hbm:

  <many-to-one name="branchDetail" column="branch_id"  class="com.hcl.fi.web.model.Branch" cascade="all"  
          not-found="ignore" not-null="true"/>  

1 个答案:

答案 0 :(得分:0)

你能看看下面的

  • 你应该有一个名为&#39; Branch&#39;的实体类。在路径下 &#39; com.hcl.fi.web.model&#39 ;.它应该被称为@Entity。
  • 确保&#39; Branch.hbm.xml&#39;文件与&#39; User.hbm.xml&#39;相同的位置 如果需要,请确保路径更正为&#39; Branch&#39;。