我正在使用Spring Data JPA和Druid。
我添加了依赖spring-boot-starter-data-jpa和avatica-core,以便在我的项目中使用带有spring data jpa的druid JDBC驱动程序。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.apache.calcite.avatica</groupId>
<artifactId>avatica-core</artifactId>
<version>${avatica.version}</version>
</dependency>
并像这样设置属性。
spring.datasource.url=jdbc:avatica:remote:url=http://localhost:8888/druid/v2/sql/avatica/
spring.datasource.driver-class-name=org.apache.calcite.avatica.remote.Driver
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
最后,我检查了查询druid sql的工作情况。
@Repository
public interface SampleRepository extends JpaRepository<SampleEntity, String> {
@Query(
value = "SELECT w.page as page, count(w.page) as cnt " +
"FROM wikipedia w " +
"GROUP BY w.page " +
"ORDER BY cnt DESC " +
"LIMIT 10",
nativeQuery = true
)
List<PageCount> findPageCountTopN();
但是,我想知道有一个jpa方言的DruidSQL。
在DruidSQL的官方文档中,没有关于DruidSQL方言的信息。
正如您所看到的,使用MySQL 8Dialect没有任何问题,而且它运行得很好。
但是,万一出现意想不到的问题,如果有这样的事情,我想应用它。
1条答案
按热度按时间izkcnapc1#
我想知道有一个jpa方言的DruidSQL?
Druid方言是+/- ANSI SQL。它添加了一些特性,删除了一些特性,但是在功能重叠的区域没有做任何发散。如果有一个ANSI SQL的JPA方言,那么它应该可以工作。