【发布时间】:2017-06-20 10:14:49
【问题描述】:
我有 2 个 JPA 实体
@Entity
@Data
public class Config {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String data;
@ManyToOne(cascade= CascadeType.ALL)
private Tenant tenant;
}
@Entity
@AllArgsConstructor
class Tenant {
@Id
private String tenantID;
}
还有一个仓库
interface SolmanConfigPrivateRepository extends CrudRepository <Config, Long> {
}
我使用以下代码创建新实体
public void addConfig(Config config){
String tenantId = userProvider.get();
config.setTenant(getCurrentTenant());
Tenant tenant = new Tenant(tenantId);
dbRepository.save(config);
}
我设法使用存储库的保存方法保存了一个配置。
如果我尝试使用同一租户保存新配置,则会收到错误消息
Unique index or primary key violation: "PRIMARY_KEY_9 ON PUBLIC.TENANT(TENANTID)
如果数据库中已有另一个租户,我如何告诉 JPA 不要尝试创建新租户(而是引用现有租户)?
【问题讨论】:
-
显示构造实体和调用保存的方法
-
我编辑了我的问题