我是Play和Hibernate的新手,正在開發一個項目。我喜歡它迄今!如何使用Play,MySQL和Hibernate自定義查詢ManyToMany表?
我遇到了一個新的問題最近。我有一張桌子。然後,我在該類中引用了一個ManyToMany關係。所以Hibernate創建這個表格就好了,我有peopleid1和peopleid2,人們可以和其他各種人建立關係,反之亦然。
我現在需要在該表上運行一些複雜的查詢,並且遇到了一些麻煩,因爲我想將它放到它自己的類中,但不確定這是最好的方法還是使用hibernate。 JPQL是答案嗎?任何幫助或想法表示讚賞!
讓我們使用堂兄弟作爲一個例子。我有一個班級/模型人,這些人有堂兄弟,可以是堂兄弟。現在我在我的代碼中有這個:
@ManyToMany(cascade=CascadeType.ALL)
@JoinTable(name = "Cousins",
joinColumns = { @JoinColumn(name = "personid") },
inverseJoinColumns = { @JoinColumn(name = "cousinid") })
public Set<User> cousins;
這很好,並創建完美的連接表,我可以輸入數據和正如預期的那樣。但是,我試圖寫一個函數卡住了。我可以找到所有登錄人員都有堂兄弟的人,但無法找到登錄的用戶是堂兄弟的所有人。我認爲這是做到這一點的正確方法,但我非常傾向於讓Cousins成爲自己的類/模型,當我這樣做的時候工作正常,但我不確定Hibernate如何管理關係。
什麼問題?如果您問的是JPQL是使用Hibernate執行請求的方式,則答案爲是。如果你問連接表是否必須映射爲實體,答案是否定的。閱讀hibernate參考文檔:解釋它。 http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/#collections-bidirectional –