我有一個Detectable
類與Revisions
集,這是Hibernate管理POJO。我還使用hbm.xml文件映射我的實體。當用戶轉到Detectable
管理屏幕時,我想讓他看到Detectable
數據放到一張表中,其中也包含最後的Revision
完成。但是,完整的修訂集只能訪問可檢測的詳細頁面。休眠派生屬性與XML映射
我的機會是顯示最後修訂日期,它將作爲每個Detectable
實例的屬性單獨加載。所以,我有這樣的事情:
detectable.hbm.xml
<set name="_Revisions" table="trevision" inverse="true" lazy="true">
<key>
<column name="id_detectable" />
</key>
<one-to-many class="com.company.model.tasks.Revision" />
</set>
<property name="_LastRevisionDate"
formula="select max(rev.start_date) from trevision rev where rev.id_detectable = _Id"
type="date" />
這不工作,我有一個SQL語法錯誤當Hibernate試圖執行包含在公式查詢。我在不同的地方看到,使用standard SQL或HQL可以達到這個屬性,但是我都失敗了。也只能按日期順序實現整個Revision
實體(我的意思是最後一次修訂)嗎?
將您的想法集中起來!
我試過了。 sql語法錯誤與在公式中寫入的查詢有關,不會提供更多信息。我無法找到關於派生屬性的更多信息,但是[鏈接](http://learningviacode.blogspot.com.es/2011/09/using-derived-properties.html)表明也可以使用hql 。我會檢查。 – 2013-04-04 19:12:15
我剛剛在我們的應用程序中查看了一些公式屬性,它們都包裝在parens中:'formula =「(...)」'。也許值得嘗試一下。 – 2013-04-04 19:20:39
HQL或SQL?你如何引用你當前實體的id,按列名或屬性? – 2013-04-04 19:24:18