0
我有兩個簡單的模型這同樣關係三次:JPA enity有
public class Wallet{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "WALLET_ID")
private long walletId;
@Column(name = "OWNER_LABEL")
private String ownerLabel;
@Column(name = "USER_ID")
private long userId;
}
和
public class Transfer{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "TRANSFER_ID")
private long transferId;
@NotNull
@Column(name = "AMOUNT")
private BigDecimal amount = BigDecimal.ZERO;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "OWNER_WALLET_ID")
private Wallet ownerWallet;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "FROM_WALLET_ID")
private Wallet fromWallet;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "TO_WALLET_ID")
private Wallet toWallet;
}
的問題是,當我想要得到他的所有關係(錢包)在一次傳送中查詢
SELECT t FROM Transfer t
LEFT JOIN FETCH t.ownerWallet w
LEFT JOIN FETCH t.toWallet tw
LEFT JOIN FETCH t.fromWallet fw
WHERE w.userId = :userId ORDER BY t.createdAt DESC
我得到的異常MySQLIntegrityConstraintViolationException:鍵'PRIMARY'的重複條目'2' 您是否有一些靈魂?謝謝你的建議
可能與問題無關,但是您應該不會使用'inner join'作爲't.ownerWallet',因爲您是通過'w.userId'進行搜索的? –
查詢不會引發與插入數據相關的異常。如果顯示異常給出堆棧跟蹤和持久性代碼,它來自 –