java - 多个项目中的实体

标签 java spring eclipselink

我有一个运行良好的 Spring 项目。我现在需要将项目分成两部分——主要是因为在另一个项目中使用了现有项目的一部分。分手时我遇到了一个我不明白的问题,也不知道问题的根源是什么。例如

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

当我将 PhoneEntity 保留在 myTestProject 中时,我可以毫无问题地启动 Tomcat。当我像上面那样分离实体时,我从 EclipseLink 得到错误消息:

实体类 [class com.smith.Company] 上属性 [phoneEntity] 的类型 [class com.smith.PhoneEntity] 不是序列化映射的有效类型。属性类型必须实现 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。整个项目编译良好。但不知何故我无法启动该项目。有任何解决问题的提示吗?

最佳答案

您正在尝试 Create a Multi Module Project ;

我建议:创建第三个模块,在其中添加所有实体以及 persistence.xml 文件,然后在 Base< 中添加该模块的依赖项测试 模块。

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

关于java - 多个项目中的实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47794964/

相关文章:

spring - 如何使用log4j2在记录文件中记录Spring JdbcTemplate SQL查询和数据库响应

java - 在 JUnit/JPA/Hibernate/Struts 和 Spring 集成测试中保持 session 打开 - 无 session 或 session 关闭 - LazyInitialization 异常

java - 如何使用 Eclipselink 创建 Java 枚举表?

java - EntityManager 静默坚持失败

hibernate - Hibernate 3.5/JPA 2.0 的区别

Java:如何将 Double 2.3 更改为 "2.0"?

java - JAXB 可以生成泛型类吗?

java - 为什么单个静态变量在多次读取时有多个值?

java - 了解对 DI 框架的需求

java - 如何在 Spring MVC REST 测试中重定向模拟请求?