hibernate - 获取GORM派生的属性

标签 hibernate grails gorm

我的grails域对象中有一个字段,希望成为其他表的派生字段。我的域如下所示

class VotingTally{

   int votesSource1
   int votesSource2
   int totalVotes

}

static mapping = {
    totalVotes formula: (votesSource1.numOfVotes+ votesSource2.numOfVotes)
}

我得到的错误是
No such property: votesSource1 for class: org.grails.datastore.mapping.config.groovy.MappingConfigurationBuilder

最佳答案

首先,formula应该是带有SQL表达式的字符串(您具有Groovy表达式)。喜欢:

static mapping = {
    totalVotes formula: 'numOfVotes1 + numOfVotes2'
}

但是在您的情况下,您想从联接表中计算值,而这是不可能的。您只是不能从此处添加JOIN

似乎只有一种方法-从代码中加载它:
static transients = ['totalVotes']

int getTotalVotes() {
    VotesSource.get(votesSource1).numOfVotes + VotesSource.get(votesSource2).numOfVotes 
}

关于hibernate - 获取GORM派生的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27884081/

相关文章:

grails - 如何排除来自Grails 2.4.3中$ GRAILS_HOME/libs/的默认库

grails - Grails-App无法启动-ApplicationEventMulticaster未初始化

grails - Grails无方向hasMany createCriteria

Java Bean创建异常

java - JPA 存储库和带有可变参数的构造函数

grails - 将 Controller 名称映射到url(带有包)

hibernate - Grails域错误: “USER_GROUP_ID”列不允许使用NULL

java - 当一对多关系的火合并时,Hibernate 抛出 EntityNotFoundException

java - 为什么 hibernate 从同一 session 的同一查询返回不同的对象?

grails - 当一个的键是另一个的ID时,如何从旧数据库中将一个映射到一个关系