當主鍵衝突我有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不要嘗試創建一個新的租戶,如果已經有另外一個數據庫(但要參考現有的)?
顯示構建實體並調用保存的方法 –
我編輯了我的問題 –