hibernate - 从Hibernate Grails中选择数据库

标签 hibernate grails groovy hql nhibernate-mapping

我需要帮助。我正在使用HQL,但我停留在此代码中,我不知道如何解决它。

def deposit = Deposit.executeQuery("select terminalID,deposit,created_at from Deposit")
我得到这样的正确结果
[[1, 1000, 2020-07-29 13:29:28.0], [0, 1, 2020-07-29 13:42:11.0], [2, 1000, 2020-07-29 13:50:08.0], [0, 1, 2020-07-29 14:03:07.0]]
但是在 View 页面中,由于没有这样的属性,我无法调用terminalID,deposit,created_at
如果我用
def deposit = Deposit.executeQuery("from Deposit")
我得到这样的错误结果[com.dm.Bank.Deposit:ID]
[com.dm.Bank.Deposit : 2, com.dm.Bank.Deposit : 2, com.dm.Bank.Deposit : 3, com.dm.Bank.Deposit : 2]
enter image description here
数据库存款:编号为auto_increment
Deposit
存款结果不同
数据库:
class Deposit implements Validateable{
    String number
    String id
    String terminalID
    String startDate 
    String endDate 
    String currency
    String startBalance
    String transactionDate
    String branchCode
    String transactionType 
    String transactionAmount
    String currentBalance
    String deposit
    String transactionName
    String trailer
    String corporateId
    String accountNumber
    String created_at
    String company
    
static mapping = {
        datasource 'DBTarget'
        table 'HISTORY_MUTASI'
        number column: "Number"
        id generator: 'assigned', column: "ID"
        terminalID column: "TerminalID"
        startDate column: "StartDate"   
        endDate column: "EndDate"
        currency column: "Currency"
        startBalance column: "StartBalance"
        transactionDate column: "TransactionDate"
        branchCode column: "BranchCode" 
        transactionType column: "TransactionType"
        transactionAmount column: "TransactionAmount"
        currentBalance column: "CurrentBalance"
        deposit column: "Deposit"
        transactionName column: "TransactionName"
        trailer column: "Trailer"
        corporateId column: "CorporateId"
        accountNumber column: "AccountNumber"
        created_at column: "created_at"
        company column: "Company"
        version false
        
    }
    static constraints = {
        number unique:true,generator:"increment";
    }

最佳答案

恕我直言,了解executeQuery如何返回非常重要。

The executeQuery method allows the execution of arbitrary HQL queries. HQL queries can return domain class instances, or Arrays of specified data when the query selects individual fields or calculated values. Read more executeQuery from Grails documentation.


正如我看到的结果格式,您必须使用基于索引的操作。
例如,我们可以在如下 View 中显示结果。
<g:each in="${deposit}" var="entry">
    <p>TerminalID: ${entry[0]} with the deposit ${entry[1]} issued at ${entry[2]}</p>
</g:each>

关于hibernate - 从Hibernate Grails中选择数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63223391/

相关文章:

hibernate - 哪个是适用于 Scala 和 PostgreSQL 的 Play 框架的最佳数据访问选项?

java - 使用 grails 配置 Hibernate

grails - 将 init 逻辑外部化为外部文件

Grails 客户端验证

testing - 在Grails 3.3.1单元测试中记录SQL

grails - Intellij11/Grails 2.0.1编译错误 “BUG! exception in phase '语义分析'”

hibernate - 使用 envers 查找小于或等于给定修订版的每个实体的最大修订版

hibernate - Grails 查询条件为 : how to get back a map with column?

groovy - 小于 Groovy case/switch 语句

grails - 如何在 UrlMappings.groovy 中重写 Grails 中的 URI