问题标签 [grails-orm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1865 浏览

inheritance - TablePerHierarchy 对于抽象类总是假的?

根据Grails GORM 指南,域类的子类与父类共享同一个表,除非 tablePerHierarchy 设置为 false。

由于“抽象”关键字,我找不到有关以下映射语句是否被忽略的信息

我的数据库不包含 Item 表,并且每个子类一个表(tablePerHierarchy==false 的预期状态)。

我是否需要使项目具体但在验证中不允许它?我计划在创建表单中使用 <select> 选择一个带有子类的 ItemController。

0 投票
1 回答
1009 浏览

grails - Grails 中除字符串以外的其他类型的映射

我在其中创建了带有地图的简单域类。

条形图将被创建为:

...如http://www.grails.org/GORM+-+Collection+Types中所述:

静态 hasMany 属性定义了 Map 中元素的类型。地图的键必须是字符串。

现在我的问题是 - 是否可以创建字符串以外的值映射?我可以使用纯 Hibernate(元素映射)来实现这一点 - 任何想法如何将它移植到 Grails?

0 投票
1 回答
9682 浏览

grails - 在 grails 中,如何断开对象与其休眠会话的连接?

我正在尝试这样做,但我得到了错误。

“具有相同标识符值的不同对象已与会话相关联”

看起来我需要从休眠会话中删除 dbObject 。

0 投票
1 回答
203 浏览

hibernate - 休眠加载功能被排除在grails之外?

我注意到Grails休眠插件不支持休眠加载功能?有人知道这是为什么吗?在我看到的所有文档中,似乎从数据库中删除对象的公认方法是执行 get(),对象 id 后跟 delete()。虽然这可行,但它会造成不必要的数据库命中。这是一个有意识的设计决定吗?

0 投票
1 回答
2471 浏览

grails - 如何解决在单个域中有 2 个 belongsTo

我有以下域:用户、角色、公司。User 和 Role 是 m:n 关系,Company to User 是 1:m,User to Company 是 1:1。我对用户域的定义有疑问。这里是:

我想从用户访问公司,以便 user.company 将给我分配他的公司。不允许这种修改:

这是错误:

请注意,也不能这样做:

由于 User-Role 具有 m:n(也已由 'authorities' 变量指定)。

还有其他解决方法吗?谢谢。

0 投票
2 回答
3610 浏览

hibernate - 如何在 Grails 中持久化枚举集合?

关于如何在 Grails 中持久化枚举集合的任何想法?

Groovy 枚举:

我想在 Grails 域类中使用这个枚举。域类如下所示:

在我的 create.jsp 中,我希望能够选择多个 MyEnums 并具有以下行:

我遇到的问题是当我尝试创建一个新的测试仪时,我收到一个 500 错误说:

0 投票
1 回答
314 浏览

grails - 如何向用于在 Grails 中继承的 DB 列“类”添加索引?

当使用table-per-hierarchy继承时,GORM 创建一个 'class' 列来存储实例的类名。

我想向该列添加数据库索引,因为我的许多 SQL 查询都包括where class='com.myapp.Mychildclass'. 但是,我没有成功使用此代码:

我在没有创建索引的情况下尝试了此代码的不同版本。

我怎样才能做到这一点?

0 投票
1 回答
968 浏览

grails - 如何将 nvarchar 设置为 GORM 中的表列

如何将列的类型设置为 nvarchar(160)?我很难让这里的示例代码与我的目标相关。我已经尝试过了:

我遇到了这个错误:原因:org.hibernate.MappingException:无法确定类型:nvarchar,在表:twitter_status,对于列:[org.hibernate.mapping.Column(text)]

最后,我将 MySQL 5 用于我的数据库服务器。

提前致谢。

0 投票
2 回答
2925 浏览

orm - 使用 GORM DSL 将多个域对象映射到同一个表

我正在旧数据库上创建一个 grails 应用程序。
有一个表,我想从中创建几个不同的域对象(在下面的示例中,Type1、Type2 和 Type3)。
表是这样的:

所以我想创建3个不同的域类,每个包含一个名为“description”的字段,并对应一个特定的“type”,因为行代表不同的概念。

是否有任何类型的约束允许我按类型过滤行?

我的意思是,我可以做类似的事情:

然后我希望 Type1.list() 产生如下查询:

更新 :

实际上文档说我可以使用鉴别器来实现这一点。

但是,我尝试将我的课程设置如下:

我激活了休眠 SQL 跟踪,而不是看到

我懂了

鉴别器似乎完全忽略了我的自定义列名:-(

我正在使用 Grails 1.2.1

0 投票
2 回答
2769 浏览

grails - 在 AfterInsert / AfterUpdate 中修改对象

我有一个域对象,它保存基于参数的计算结果,这些参数是同一域对象的属性。我想确保任何时候用户更改参数,它都会重新计算并正确保存到数据库中。

我正在尝试使用 afterInsert(首先确保计算正确)和 afterUpdate 来做到这一点。

但是,由于我的计算试图修改对象本身,所以它不起作用 - 抛出各种休眠异常。

我试图将 afterUpdate 代码放入事务中,但这没有帮助。恐怕我在这里遇到了循环依赖问题。

我现在得到的例外是:

GORM 事件是为更简单的用例设计的吗?我很想得出结论,修改你正在保存的对象不是要走的路。