hibernate - 如何在 Grails 中调用命名查询

标签 hibernate grails

鉴于以下example from Hibernate Make Easy ,如何在 Grails 中调用命名查询 user.findByLoginName?

package com.examscam.model;
import javax.persistence.*;
import org.hibernate.Session;
import com.examscam.HibernateUtil;
@Entity
@Table(name = "user", schema = "examscam")
@NamedQuery(name="user.findByLoginName",
   query="from User where loginName = :name" )
public class User {     }

最佳答案

您必须使用 Hibernate session 。

在 Grails 1.1 中,您可以使用该类的 withSession 方法。

User.withSession { session ->
    return session.getNamedQuery('user.findByLoginName')
        .setString('name', 'someName')
        .list() 
} 

使用 Grails 1.0,您需要将 sessionFactory 对象注入(inject)到您的 Controller /服务中才能访问它。

关于hibernate - 如何在 Grails 中调用命名查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1102096/

相关文章:

java - getDeclaringClass 导致未能延迟初始化异常

grails - 在 Grails 运行时覆盖 i18n .properties 文件

javascript - 在同一页面加载的 javaScript 文件中使用 gsp 布局声明变量

hibernate - 从我的 Grails 应用程序访问本地存储的文件?

java - Hibernate - 从另一个表中选择具有 id 的实体?

java - 即使使用@Fetch(FetchMode.JOIN),JPA + Hibernate 也会出现太多查询问题

session - 保持 session 状态

grails - 获取 Grails 域中的属性标签

grails - URL访问在Grails Spring Security中被拒绝

java - 使用 JPA 2.1 调用存储过程并将 Sql 结果集映射到 Pojo