使用micronaut hibernate-gorm可以使用本地SQL查询吗?

问题描述 投票:0回答:2

我使用hibernate-gorm创建了micronaut项目,它给了我GORM和Groovy功能,但是当它没有groovy.sql.Sql类,如果我注入DataSource,那么它也不能工作。是否可以用micronaut hiberate-gorm来使用本地SQL查询?

sql hibernate gorm micronaut
2个回答
1
投票

是的,这是可能的。请看这个例子。

import grails.gorm.annotation.Entity
import grails.gorm.hibernate.HibernateEntity

@Entity
class Planet implements HibernateEntity<Planet> {
    String name
}

在这种情况下,重要的是要实现 HibernateEntity 然后你就会 findWithSql 方法可用,如下面使用Spock框架实现的单元测试中所示。

import grails.gorm.transactions.Transactional
import io.micronaut.test.annotation.MicronautTest
import spock.lang.Specification

@MicronautTest
class PlanetSpec extends Specification {

    @Transactional
    void 'Planet is found when using native query'() {
        given:
        new Planet(name: 'Mars').save()
        new Planet(name: 'Earth').save(flush: true)
        when:
        def actual = Planet.findWithSql("select * from planet p where p.name = 'Mars'")
        then:
        actual.name == 'Mars'
    }
}

0
投票

我知道hibernate中有一个SQLQuery方法 可以对数据库引擎进行本地查询,你试过吗?

© www.soinside.com 2019 - 2024. All rights reserved.