在 Grails 3.0.1 中使用 Hibernate 注解进行映射

2023-12-14

如何在 Grails 3.0.1 中映射带有注释的域类?

以下步骤对我不起作用。

Step 1。我使用 Grails 3.0.1 创建了一个新应用程序(grails create-app books).

Step 2。如中所述使用 Hibernate 注解进行映射我创建了一个新课程src/main/com/books/Book.groovy (tried src/main/groovy/com/books/Book.groovy以及)

package com.books;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class Book {
    private Long id;
    private String title;
    private String description;
    private Date date;

    @Id
    @GeneratedValue
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }
}

Step 3。然后通过向 Hibernate sessionFactory 添加相关条目来注册该类grails-app/conf/hibernate/hibernate.cfg.xml文件如下:

<!DOCTYPE hibernate-configuration SYSTEM
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <mapping package="com.books" />
        <mapping class="com.books.Book" />
    </session-factory>
</hibernate-configuration>

Step 4。启动应用程序后(grails run-app),“欢迎使用 Grails”页面(grails-app/views/index.gsp) 报告零域类,这意味着映射没有生效:

  • grails 运行应用程序
  • 加载本地主机:8080
  • 请注意“ARTEFACTS”部分下的“Domains: 0”

Grails 3.0.1 中的相关异常

如果我查询上面的域类,则会抛出以下异常

Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: Book is not mapped
    at org.hibernate.hql.internal.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:189) ~[hibernate-core-4.3.8.Final.jar:4.3.8.Final]
    at org.hibernate.hql.internal.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:109) ~[hibernate-core-4.3.8.Final.jar:4.3.8.Final]
       .hibernate.hql.internal.ast.tree.FromClause.addFromElement(FromClause.java:95) ~[hibernate-core-4.3.8.Final.jar:4.3.8.Final]
    at org.hibernate.hql.internal.ast.HqlSqlWalker.createFromElement(HqlSqlWalker.java:332) ~[hibernate-core-4.3.8.Final.jar:4.3.8.Final]
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3678) ~[hibernate-core-4.3.8.Final.jar:4.3.8.Final]
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:3567) ~[hibernate-core-4.3.8.Final.jar:4.3.8.Final]
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:708) ~[hibernate-core-4.3.8.Final.jar:4.3.8.Final]
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:564) ~[hibernate-core-4.3.8.Final.jar:4.3.8.Final]
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:301) ~[hibernate-core-4.3.8.Final.jar:4.3.8.Final]
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:249) ~[hibernate-core-4.3.8.Final.jar:4.3.8.Final]
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:278) ~[hibernate-core-4.3.8.Final.jar:4.3.8.Final]
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:206) ~[hibernate-core-4.3.8.Final.jar:4.3.8.Final]
    ... 40 common frames omitted

正如格雷姆所建议的,解决方案是hibernate.cfg.xml in grails-app/conf代替grails-app/conf/hibernate,否则配置不会生效。我已经提交了一份拉取请求以反映这一点相关文件我希望更新尽快生效,以免其他用户遇到同样的问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Grails 3.0.1 中使用 Hibernate 注解进行映射 的相关文章

随机推荐

  • 发布时如何设置ASPNETCORE_ENVIRONMENT?

    我有几个 WebDeploy 发布配置文件 可将我的 NET Core Web 项目部署到各个位置 开发 QA IIS 上的阶段 为了让应用程序知道它在哪里运行 我需要设置 ASPNETCORE ENVIRONMENT 环境变量 是否可以在
  • 来自特定麦克风的 Web Audio Api 输入

    我正在使用 Web Audio Api navigator getUserMedia audio true function function 进行音频录制 如果用户有多个麦克风设备 我可以选择所需的录音设备吗 我遇到过一个有问题的情况 一
  • 在 sed 中使用美元符号进行变量替换和字符

    我尝试使用 sed 更改名为 fusion gnu 的文件中的一行 我有一个名为lafila 这是一个文件名 目前 我可以这样做 lafila nGas060 dat sed i 6s plot lafila using 1 2 with
  • 即时应用程序模块在另一个非基本模块中搜索资源

    我正在开发一个即时应用程序 它有base模块和 2 个功能模块 feature1 and feature2 当我尝试启动时遇到奇怪的崩溃feature2活动 java lang RuntimeException Unable to star
  • x86除法异常-返回地址

    当尝试在 x86 程序集中为引导加载程序编写一些例程时 我遇到了一个错误 当发生除法错误时 程序将陷入无限循环 通过调查 我发现调用 int 0 会正常通过异常处理程序 然后继续执行程序的其余部分 我自己为 x86 编写了异常处理程序 发生
  • 如何访问 GroupPrincipal 对象上的注释字段

    我使用查询特定域中的所有安全组 PrincipalSearchResult
  • 在批处理文件的参数中转义“、<、>、>> 或 | 等字符

    尝试做 fake command bat ping n 4 w 1 127 0 0 1 gt NUL and fake command bat ping n 4 w 1 127 0 0 1 批处理文件可能如下所示 echo 它应该返回 pi
  • T-SQL BETWEEN 问题最大值优先

    为什么这两个表达式返回不同的结果 这实在是太愚蠢了 SELECT FROM Table WHERE ID BETWEEN 3 AND 1 SELECT FROM Table WHERE ID BETWEEN 1 AND 3 As the 文
  • OpenCV检测人脸特征点(耳朵-下巴-耳朵线)

    我正在寻找一个opencv函数 在python中 检测人脸上的左耳 下巴 右耳线 看起来像抛物线 有没有某种 haarcascade 来做这项工作 我已经知道正面或眼睛的轮廓 但我正在寻找更精确的东西 您正在寻找的称为面部标志检测 您可以尝
  • 使用 Nimbus Look And Feel 时无法在 JTextArea 背景上绘制图像

    我正在绘制图像JTextArea背景 它是使用其他外观和感觉 金属 Windows 等 绘制的 但是当我使用Nimbus外观和感觉它不绘制图像可能是什么问题以及如何解决该问题 这是我正在使用的代码 图片文本区域类 public class
  • 如何在opencv中应用三点三角形渐变?

    假设我们有一个 Delaunay 三角剖分这个 产生于fillConvexPoly on getVoronoiFacetList 里面有三角形 可以通过以下方式获得getTriangleList 我想画德劳内三角剖分 就像它是由三角形组成的
  • 全局变量与局部变量的性能

    我对 Python 还是个新手 并且一直在努力提高 Python 脚本的性能 因此我在使用和不使用全局变量的情况下对其进行了测试 我对它进行了计时 令我惊讶的是 使用声明的全局变量而不是将局部变量传递给函数 它运行得更快 这是怎么回事 我认
  • uWSGI+Flask+boto——线程安全

    假设我有一个 Flask 应用程序 由 uWSGI 使用多个进程提供服务 例如 uwsgi socket 127 0 0 1 3031 file flaskapp py callable app processes 4 我的 Flask 应
  • Retrofit 和 RxJava:如何组合两个请求并访问两个结果?

    我需要提出两个服务请求并将其结果合并 服务 gt id 1 name title id 1 name title 服务B id gt field value field1 value 目前 我已成功合并结果 但我需要通过id作为参数Serv
  • 无法读取环境变量

    我有一个简单的 Symfony 项目 使用 symfony dotenv 4 3 in the composer json并尝试读取环境变量的值 这是我的命令 var dump ENV MY NEW VAR 这是我的 env file MY
  • 费马素性测试的实现

    谁愿意帮我做作业 我正在尝试实施费马素性测试在 Java 中使用 BigIntegers 我的实现如下 但不幸的是它不起作用 有任何想法吗 public static boolean checkPrime BigInteger n int
  • Matlab - 将变量分组并输出组索引的命令

    我有一个向量 例如 a 1 1 2 2 7 7 7 10 10 10 10 11 15 它可以是未排序的 但在这里我将其写为已排序的 我正在寻找一个Matlab命令 将上面的内容转换为 1 1 2 2 3 3 3 3 4 4 4 4 5 6
  • MSVC:C ++ 14:std:set:比较函数:为什么需要“const”?

    示例代码 include
  • IE9 中的迭代顺序不同

    在 IE9 中 对象属性的数字键是排序的 这导致 IE9 中的迭代顺序与 IE8 不同 在 IE8 中插入时保留顺序 var obj 5 John 1 Kumar 3 Rajesh 2 Yogesh for var key in obj a
  • 在 Grails 3.0.1 中使用 Hibernate 注解进行映射

    如何在 Grails 3 0 1 中映射带有注释的域类 以下步骤对我不起作用 Step 1 我使用 Grails 3 0 1 创建了一个新应用程序 grails create app books Step 2 如中所述使用 Hibernat