我有一个应用程序 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 文件,您可以将其添加到 applicationA 和 applicationB pom.xml 中。
<dependency>
<groupId>com.example.app</groupId>
<artifactId>application-commons</artifactId>
<version>0.0.1</version>
</dependency>
这样您就可以避免在多个项目中重复自己。
为了轻松处理 jar 文件的更新,您还可以在 Artifact Repository Manager 上上传最新版本,例如:Nexus 或 Artifactory strong> 以便在您的应用程序之间轻松共享最新的 jar 文件版本。
关于java - JPA:2个应用程序需要更新一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52344662/