IT序号网

oracle之Grails Transient作为查找

bhlsheji 2025年12月25日 编程语言 14 0

用Grails弄湿我的脚,所以请忍受我...

只是想知道这是否是 transient 的良好使用,还是有更好的方法。

说我有

class Author { 
 
String name 
String favoriteBook 
 
static transients = ["favoriteBook"] 
 
etc. 

“最喜欢的书”是作者出版的一本书的“书”表中的标题。我有一个数据库存储过程(函数),我想使用它来执行此查找。我不希望它持久化到数据库中,而只是在执行“作者”列表(和显示)时进行动态评估。对于列表,理想情况下也可以排序。

注意:使用Oracle datbase

显然,这不是我的真实示例,我实际上是在扩展旧数据库,并且无法修改该结构。...我有很多可以使用的存储过程。所以问题仍然存在...我希望我的域类从数据库中提取一个存储过程的结果值。

我在网上找到了使用瞬变的示例,但不是以这种方式...我滥用它了吗?如何在g&g和GORM中利用存储过程?

我也找到了使用存储过程的例子,像这样
http://www.craigburke.com/post/44771719252/oracle-stored-procs-in-grails
但是缺少如何在 View 中实现这一点...

tia ...

K.

请您参考如下方法:

与其将其声明为 transient ,不如将其映射为formula

class Author { 
  String name 
  String favoriteBook 
 
  static mapping = { 
    favoriteBook formula:'find_favorite_book(id)' 
} 

(或调用自定义函数所需的任何SQL)。

引用链接的文档

Note that the formula expressed in the ORM DSL is SQL so references to other properties should relate to the persistence model not the object model.



即,如果您需要在公式中引用其他属性,则必须使用数据库列名称( some_property)而不是属性名称( someProperty)。如果您不想猜测命名约定,则应考虑使要在公式中使用的任何列的属性到列的映射都显式
static mapping = { 
  someProperty column:'my_unusual_column' 
} 


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!