0
用Grails 3.2.5,hibernate 5.1.2核心。Grails 3域類組成
我有了一個表中的幾個CLOB的舊的數據庫。爲了避免急切的抓取,在Grails的早期版本中,我定義了一個只包含那些clobs的域類,以便通過一個(明顯的)關聯來訪問它,然後這個關聯可以被延遲地獲取。設置的草圖:
class Comment {
String someField // eager
CommentText cmntText // lazy
static mapping = {
id column: 'COMMENT_ID', generator:'sequence', params:[sequence:'cmnt_seq']
}
In a separate domain class file:
class CommentText {
String userComment
static mapping = {
table 'COMMENT'
id generator:'assigned'
userComment sqlType:'clob'
}
As noted, clob column 'user_comment' exists in the single table 'COMMENT'.
在3.2.5,這樣當我拿到那列「comment_text_id」不是表「註釋」中定義的錯誤。情況並非如此,該領域也不應該存在。
與此類似,在另一種情況下我定義的複合域類(在相同的文件中的實際域類中定義的類)。在這種情況下也可以找到有關失蹤ID錯誤:
class A {
B b
}
class B {
String someField
}
在這種情況下,我得到一個錯誤,那場B_ID不是表「A」。但是 - 它應該是嵌入式組合,它不應該在那裏。
我在Intellij內建立,如果這是相關的。
我試圖改變的build.gradle更新我的項目。但是,它找不到ManagedEntity導入,並且不認爲Comment是一個域類。我不確定Grails 3.2.5或3.2.8是否會強制使用Gorm版本,這是我的問題或其他問題。我假設我不必使用dsl版本的映射,但是如果我恢復到可以編譯的舊樣式,但userComment不會延遲加載。 – Jay
呵呵,我的build.gradle: 編譯「org.grails.plugins:hibernate5:6.0.11」// JTP compile「org.hibernate:hibernate-ehcache」 – Jay