多个项目中的实体

时间:2017-12-13 14:06:44

标签: java spring eclipselink

我有一个可以正常工作的Spring项目。我现在要求将项目分成两部分 - 主要是因为在另一部分中使用了现有项目的一部分。虽然分裂我面临一个问题我不明白,并且没有真正的线索是什么问题的根源。 E.g。

+ -- myTestProject
  | -- PersonEntity
  | -- persistence.xml
  | -- pom.xml
+ -- myBaseProject
  |
  | -- PhoneEntity
  | -- pom.xml

当我将PhoneEntity保留在myTestProject时,我可以毫无问题地启动Tomcat。当我将上述实体分开时,我会从EclipseLink获得错误消息:

The type [class com.smith.PhoneEntity] for the attribute [phoneEntity] on the entity class [class com.smith.Company] is not a valid type for a serialized mapping. The attribute type must implement the Serializable interface.

<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
             http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
             version="2.1">
    <persistence-unit name="eclipselink" transaction-type="RESOURCE_LOCAL">   

        <description>Application managed persistence unit</description>
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
        <non-jta-data-source>java:comp/env/jdbc/ecoiDS</non-jta-data-source>   
        <class>com.smith.PersonEntity</class>
        <class>com.smith.PhoneEntity</class>
        <class>com.smith.Company</class>

        <properties>
            <property name="eclipselink.logging.level" value="WARNING" />
            <property name="eclipselink.logging.timestamp" value="true" />
            <property name="eclipselink.logging.session" value="false" />
            <property name="eclipselink.logging.thread" value="false" />
            <property name="eclipselink.logging.exceptions" value="true" />
            <property name="eclipselink.weaving" value="static"/>
            <property name=""/>

        </properties>
    </persistence-unit>
</persistence>

persistence.xml也包含PhoneEntity。整个项目汇编得很好。但不知怎的,我无法启动该项目。有什么提示可以解决这个问题吗?

1 个答案:

答案 0 :(得分:3)

你正试图Create a Multi Module Project;

我建议:您创建第三个模块,在其中添加所有实体以及persistence.xml文件,然后在Base和{{1}中添加该模块的依赖关系} modules。

你可以在这里找到一个实际的例子 - &gt; Spring Boot Multimodule project example