使用 Grails 访问没有域类的数据库

jon*_*ity 5 database db2 grails groovy grails-domain-class

我在尝试将 Grails 应用程序与 AS400/DB2 数据库放在一起时遇到了一个问题。我无法映射大部分文件,因为它们没有可用作 ID 的唯一字段。即使他们这样做,它们也是基于文本的字段,而不是可以转换为长类型的格式。(我不明白为什么 PK 必须是长数据类型?如果你想我们为 pk 提供一个序列或 AI 是有意义的,但如果你只需要一个唯一的密钥怎么办?我在这里遗漏了什么吗?)

我想知道是否可以保留我设置的数据源,并将其用于直接 SQL 访问数据库,而不必使用域对象?

我看到的是将域对象设置为瞬态。但我不知道你是否仍然可以在没有 id 字段的情况下做类似的事情。有谁知道这是如何工作的?

有任何想法吗?

谢谢,乔恩

Gre*_*rin 3

您可以非常轻松地访问数据库,出于性能原因,我们在某些情况下也会这样做:

class SomeService {
    def dataSource;

    def nativeAccessMethod = {
        def sql = new Sql(dataSource);
        def rows = sql.rows("select * from myTable");
        /* processing continues ...*/
    }
}
Run Code Online (Sandbox Code Playgroud)

Groovy 的本机 SQL 支持也很好。