我正在考虑将我的应用程序的持久性映射从hibernate hbm文件移动到grails域对象.该架构不符合Grails的许多列命名约定,包括组合列名称.我想要做的是:
class Foo{
Bar bar
static embedded = ['bar']
static mapping = {
bar.baz column:'baz'
bar.quz column:'qux'
}
}
class Bar{
String baz, qux
}
Run Code Online (Sandbox Code Playgroud)
这个问题有jira.不幸的是,它已经开放了将近两年,没有任何变化.对于db中这些更改列的缺点,是否有解决方法?
我目前有一组通过每个层次结构表映射的域子类。基类中的属性之一需要是唯一的,但仅限于每个子类内。我最初的想法是使用鉴别器创建一个多列唯一约束,如下所示:
BaseClass {
String name
static constraints = {
name unique 'discriminator'
}
}
Run Code Online (Sandbox Code Playgroud)
我得到错误:
Scope for constraint [unique] of property [name] of class [class BaseClass] must be a valid property name of same class
Run Code Online (Sandbox Code Playgroud)
有没有办法使用鉴别器来达到此目的,或者有其他方法来为每个子类设置唯一的属性?切换到每个子类一个表并不是真正可行的。
我正在寻找一种通过Grails JSON转换进行字符串格式化的方法,类似于我在本文中找到的自定义格式化日期.
像这样的东西:
import grails.converters.JSON;
class BootStrap {
def init = { servletContext ->
JSON.registerObjectMarshaller(String) {
return it?.trim() }
}
def destroy = {
}
}
Run Code Online (Sandbox Code Playgroud)
我知道自定义格式可以在每个域类的基础上完成,但我正在寻找更全面的解决方案.