gpt4 book ai didi

grails - Grails 3域类组成

转载 作者:行者123 更新时间:2023-12-02 15:18:37 28 4
gpt4 key购买 nike

使用Grails 3.2.5,休眠5.1.2内核。

我有一个旧的数据库,在一个表中有几个Clob。为了避免急切地获取,在较早版本的Grails中,我定义了一个仅包含那些Clob的域类,以使它们可以通过(表观)关联进行访问,然后可以延迟获取它们。设置草图:

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”中定义列“comment_text_id”。情况并非如此,该字段也不必存在。

类似地,在另一种情况下,我定义了一个复合域类(与实际域类在同一文件中定义的类)。在这种情况下,我也会收到有关缺少的ID的错误消息:
class A {
B b
}

class B {
String someField
}

在这种情况下,我收到一条错误消息,指出字段b_id不在表'A'中。但是-它应该是嵌入式组合,不应该存在。

如果相关的话,我正在Intellij中构建。

最佳答案

使用GORM 6.1,现在可以通过单个域类实现

import grails.gorm.hibernate.annotation.ManagedEntity
import static grails.gorm.hibernate.mapping.MappingBuilder.*

@ManagedEntity
class Comment {

String someField
String userComment

static constraints = {
}

static final mapping = orm {
id {
generator("sequence")
params(sequence:'cmnt_seq')
}
userComment = property {
lazy(true)
column {
sqlType 'clob'
}
}
}

}

关于grails - Grails 3域类组成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44553391/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com