0
我有2個表Asset和Asset_Dist_Types。資產是父級,Asset_Dist_Types是子級表。 Asset_Dist_Types具有2列asset_id和lkp_dist_type,其中asset_id是Asset表中的主鍵。在Asset_Dist_Types中,它是多對多的(一個asset_id可以有多個lkp_dist_type條目。)在java中,我們只有Asset表的實體類。在Asset_Dist_Type中,他們已經提到它是元素的集合。在Asset.java中,Asset_Dist_Type的條目如下所示。HQL查詢未執行
@CollectionOfElements
@JoinTable(name = "ASSET_DIST_TYPE", joinColumns = @JoinColumn(name="ASSET_ID"))
@Column(name="LKP_DIST_TYPE")
private Set<Integer> distTypes = new LinkedHashSet<Integer>(0);
現在我想更新Asset_Dist_Type表的lkp_dist_type列。我有資產ID的列表。我已經寫下面的查詢來更新它。
int hql = entityManager.createQuery(
"update Asset a set a.distTypes = :distTypeParamId where a.assetId in (:assetIdParam)")
.setParameter("distTypeParamId", distTypeList)
.setParameter("assetIdParam", assetIdListToUpdateLOB)
.executeUpdate();
但這扔
javax.persistence.PersistenceException:
org.hibernate.exception.GenericJDBCException: could not execute update query.
由於我是新來冬眠,我沒有得到該如何解決。有人可以幫幫我嗎?
一些能幫助一個列表後.. !!!? – Sanjay
在您的Hibernate配置('hibernate.cfg.xml')中,您可以添加' true ',然後將所有生成的SQL語句記錄到控制檯。這已經可以幫助你,你可以將該語句複製到SQL終端並在那裏執行它,以查看它產生的錯誤。如果你仍然有問題,請。在終端中執行時發佈陳述和錯誤。 –
Johanna
感謝約翰娜的迴應..!我採取了不同的方式來完成它。 – Sanjay