java - JPA:2个应用程序需要更新一个对象

标签 java spring jpa

我有一个应用程序 A,它有一个实体客户。

package stackoverflowTest.dao;

import javax.persistence.*;

@Entity
@Table(name = "customers")
public class Customer {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private long id;

@Column(name = "name")
private String name;

public Customer(String name) {
this.name = name;
}


}

现在我有一个应用程序 B,需要更新实体。

  • 我必须先执行 findOne(customer) 然后再进行更新吗?

  • 如何管理两个应用程序中的实体类?例如,如果我更改应用程序 A 中的实体(添加另一个字段),我不想再次部署只是为了能够更新名称。

我可以用“肮脏”的方式来做;这意味着我在两个应用程序中都有该类,并执行 findOne,然后进行更新。

我只是想知道是否有更好的方法。

谢谢。

最佳答案

这很简单,您可以创建一个单独的项目来生成一个包含存储库层和实体的 jar 文件。然后通过创建 jar 文件,您可以将其添加到 applicationAapplicationB pom.xml 中。

<dependency>
    <groupId>com.example.app</groupId>
    <artifactId>application-commons</artifactId>
    <version>0.0.1</version>
</dependency>

这样您就可以避免在多个项目中重复自己。

为了轻松处理 jar 文件的更新,您还可以在 Artifact Repository Manager 上上传最新版本,例如:NexusArtifactory strong> 以便在您的应用程序之间轻松共享最新的 jar 文件版本。

关于java - JPA:2个应用程序需要更新一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52344662/

相关文章:

java - 在 Java 中将整数转换为字节

java - Sonar 和Datanucleus

java - 为什么这个函数不打印所有的值?

java - JAXB Marshall 泛型类型的 Map 结构

java - 使用 EclipseLink JPA 插入 Null 结构

api - Criteria API - 在 ElementCollection 中使用 UPPER

java - Wildfly Swarm 在 Docker 容器上连接 Postgres 数据源时出错

java - 阻止方法参数名称在 Android Studio 中突出显示

java - MongoDB 中的查询

java - Spring Batch 无法序列化 : class org. 类型的对象 springframework.batch.core.StepExecution