Tag: gorm

hibernateGrails应用程序中的第二级caching

第一部分 在Grails应用程序中,我知道您可以通过添加为每个域类启用第二级caching static mapping { cache true } 默认情况下,二级caching仅在调用get()时使用,但也可以通过将cache true添加到查询来用于条件查询和dynamic查找器。 但是,我仍然不确定我了解查询caching的工作方式。 我最好的猜测是: 每个域类都有单独的查询caching,例如一个用于Book,另一个用于Author 在执行诸如Author.findByName('bob', [cache: true])类的查询之前,计算基于域类(Author),查询(findByName)和查询参数('bob “)。 如果在作者查询caching中find该键,则返回caching的结果而不是执行查询 任何时候作者被保存,删除或更新,作者查询caching刷新 这似乎是合理的,直到我们认为返回Book实例的查询可能会join到Author表中。 在这种情况下,当“作者”被保存,删除或更新时,需要刷新“书本”和“作者”查询caching。 这使我怀疑,也许只有一个单一的查询caching,并且只要保存了任何caching的域类,它就会被清除。 第二部分 在Grails文档中提到了这一点 除了可以使用Hibernate的二级caching来caching实例外,还可以caching对象的集合(关联)。 例如: class Author { static hasMany = [books: Book] static mapping = { cache true // Author uses the 2nd level cache books cache: true // associated books use the […]

如何在Grails中的多个字段中进行sorting?

有没有办法得到两个字段sorting的名单,说最后一个名字? 我知道.listOrderByLastAndFirst和.list(sort:'last, first')将无法正常工作。

find对集合org.hibernate.HibernateException的共享引用

我得到这个错误信息: 错误:find对集合的共享引用:Person.relatedPersons 当我试图执行addToRelatedPersons(anotherPerson) : person.addToRelatedPersons(anotherPerson); anotherPerson.addToRelatedPersons(person); anotherPerson.save(); person.save(); 我的域名: Person { static hasMany = [relatedPersons:Person]; } 任何想法为什么发生这种情况

将JSON绑定到嵌套的Grails域对象

我正在开发一个用于为JavaScript应用程序提供JSON数据的RESTful接口。 在服务器端,我使用Grails 1.3.7并使用GORM域对象进行持久化。 我实现了一个自定义的JSON Marshaller来支持编组嵌套的域对象 以下是示例域对象: class SampleDomain { static mapping = { nest2 cascade: 'all' } String someString SampleDomainNested nest2 } 和 class SampleDomainNested { String someField } SampleDomain资源在URL / rs / sample / so / rs / sample / 1下发布到ID为1的SampleDomain对象 当我使用自定义的json编组器(GET / rs / sample / 1)呈现资源时,我得到以下数据: { "someString" : "somevalue1", "nest2" : […]

在Grails中findAll,getAll和list之间的区别

Grails有几种方法可以做同样的事情。 查找所有的域类实例: Book.findAll() Book.getAll() Book.list() 检索指定标识的域类的实例: Book.findById(1) Book.get(1) 你什么时候使用每一个? 性能有显着差异吗?

为什么我在Grails中使用HibernateCriteriaBuilder的时候得到一个“空值赋给原始typessetter的属性”错误信息

在我的grails域对象中使用原始属性时,出现以下错误: Null value was assigned to a property of primitive type setter of MyDomain.myAttribute org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type setter of MyDomain.myAttribute at grails.orm.HibernateCriteriaBuilder.invokeMethod(HibernateCriteriaBuilder.java:1077)