我有一个可以正常工作的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
。整个项目汇编得很好。但不知怎的,我无法启动该项目。有什么提示可以解决这个问题吗?
答案 0 :(得分:3)
你正试图Create a Multi Module Project;
我建议:您创建第三个模块,在其中添加所有实体以及persistence.xml
文件,然后在Base
和{{1}中添加该模块的依赖关系} modules。
你可以在这里找到一个实际的例子 - &gt; Spring Boot Multimodule project example