Hibernate hbm映射文件引用另一个项目中的实体

时间:2016-04-02 13:52:06

标签: java eclipse spring hibernate hbm

我在Eclipse工作区中有两个项目:'myproject-main'引用'myproject-domain'(通过将其添加到构建路径来引用它.'myproject-domain'包含我的域实体(POJO),什么都没有其他。一切都正确构建,“myproject-main”中的类对“myproject-domain”中的实体的任何引用都没问题。

问题是我在'myproject-main'中有Hibernate hbm.xml文件,它们引用了'myproject-domain'中的实体。

这是'myproject-main',以及所有其他Hibernate和Spring设置:

<class name="uk.co.luciditysoftware.myproject.domain.entities.User" table="`User`">

  <id name="id" column="`Id`" type="uuid-char">
    <generator class="assigned" />
  </id>

  <property name="firstName">
    <column name="`FirstName`" length="50" not-null="true" />
  </property>

  <property name="lastName">
    <column name="`LastName`" length="50" not-null="true" />
  </property>

</class>

和'myproject-domain'中的这个类:

package uk.co.luciditysoftware.myproject.domain.entities;

import java.util.UUID;

public class User {
  private UUID id;
  private String firstName;
  private String lastName;

  public UUID getId() {
    return id;
  }

  public void setId(UUID id) {
    this.id = id;
  }

  public String getFirstName() {
    return firstName;
  }

  public void setFirstName(String firstName) {
    this.firstName = firstName;
  }

  public String getLastName() {
    return lastName;
  }

  public void setLastName(String lastName) {
    this.lastName = lastName;
  }
}

如果我将用户实体包含在'myproject-main'项目中,一切都按预期工作,所以我的Hibernate / Spring设置没有任何问题,只是在引用项目中找到User实体时遇到问题

启动项目时提出的预期堆栈

java.lang.ClassNotFoundException: uk.co.luciditysoftware.myproject.domain.entities.User 

在底部

org.hibernate.MappingException: class uk.co.luciditysoftware.myproject.domain.entities.User not found while looking for property 

下一个在堆栈中。

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。我通过go:

从my-project-main引用myproject-domain
myproject-main -> right click -> Properties -> Java Build Path -> Projects -> Add

并在那里添加myproject域,但您还需要执行以下操作:

Main menu -> Run -> Run Configurations... -> Apache Tomcat -> Tomcat v8.0 server -> Classpath tab -> Add Projects... 

并在此处添加myproject-domain,如此问题所述:calling a class in another project Eclipse