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