当主键冲突我有2个JPA实体JPA:有许多保存一个实体一个
@Entity
@Data
public class SolManConfig {
@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 <SolManConfig, Long> {
}
我创建了下面的代码
public void addConfig(SolManConfig solManConfig){
String tenantId = userProvider.get();
solManConfig.setTenant(getCurrentTenant());
Tenant tenant = new Tenant(tenantId);
dbRepository.save(solManConfig);
}
新的实体
我设法使用存储库的保存方法保存SolmanConfig。
如果我尝试保存新SolmanConfig具有相同的租,我得到一个错误
Unique index or primary key violation: "PRIMARY_KEY_9 ON PUBLIC.TENANT(TENANTID)
我怎么能告诉JPA不要尝试创建一个新的租户,如果已经有另外一个数据库(但要参考现有的)?
显示构建实体并调用保存的方法 –
我编辑了我的问题 –