- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在我的 Micronaut 应用程序中使用 jOOQ,并让 jOOQ DSLContext 自 Action 为注入(inject)的 bean 提供给我的构造函数,但它找不到该 bean。
我已经在我的 application.yml 中配置了我的数据源以连接到我的 postgres 数据库,并声明了我的构造函数如下:
@Singleton
public class RepositoryImpl implements Repository
{
private final DSLContext context;
public RepositoryImpl(DSLContext context)
{
this.context = context;
}
}
和我的 application.yml 为:
datasources:
default:
url: "jdbc:postgresql://localhost:5432/my_db"
username: "user"
password: "password"
driver-class-name: "org.postgresql.Driver"
我在我的 build.gradle 中包含了以下依赖项
compile 'io.micronaut.configuration:micronaut-jooq'
runtime 'org.postgresql:postgresql:42.2.4'
我希望我可以访问 DSLContext 并在我的 RepositoryImpl 类中编写查询,但是在尝试使用实现类时,代码失败并出现以下异常:
Caused by: io.micronaut.context.exceptions.NoSuchBeanException: No bean of type [org.jooq.DSLContext] exists. Make sure the bean is not disabled by bean requirements (enable trace logging for 'io.micronaut.context.condition' to check) and if the bean is enabled then ensure the class is declared a bean and annotation processing is enabled (for Java and Kotlin the 'micronaut-inject-java' dependency should be configured as an annotation processor).
有没有人能够按照这里的 micronaut-sql 指南中的描述成功使用这个 bean? https://micronaut-projects.github.io/micronaut-sql/snapshot/guide/index.html#jooq
最佳答案
DSLContext
存在于 org.jooq.Configuration
上,所以首先你必须以某种方式实例化后者。
您可以定义一个用 @Factory
注释的类,并将 javax.sql.DataSource
注入(inject)到它的构造函数中,该构造函数包含 Micronaut 数据源配置。之后你应该在这个类中定义一个方法(用@Singleton
注释),这个方法应该返回一个org.jooq.Configuration
。在这个方法中你可以配置 jOOQ,基本上你可以使用 DefaultConfiguration()
,但是你必须通过调用 setSQLDialect(SQLDialect.POSTGRES)
来设置你的 SQL 方言,并且您还必须设置数据源 (set(datasource)
),并将数据源注入(inject)到类中。
import io.micronaut.context.annotation.Factory;
import org.jooq.Configuration;
import org.jooq.SQLDialect;
import org.jooq.impl.DefaultConfiguration;
import javax.inject.Singleton;
import javax.sql.DataSource;
@Factory
public class JooqConfigurationFactory {
private final DataSource dataSource;
public JooqConfigurationFactory(DataSource dataSource) {
this.dataSource = dataSource;
}
@Singleton
public Configuration configuration() {
DefaultConfiguration configuration = new DefaultConfiguration();
configuration.setSQLDialect(SQLDialect.POSTGRES);
configuration.set(dataSource);
return configuration;
}
}
您的存储库将如下所示:
import org.jooq.Configuration;
import org.jooq.DSLContext;
public class ExampleRepository {
private final DSLContext context;
public ExampleRepository(Configuration config) {
this.context = config.dsl();
}
}
关于java - 未在 Micronaut 项目中创建 jOOQ DSLContext Bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58180628/
我正在尝试生成 Database使用 JOOQ 我确实用这段代码创建了一个表: CreateTableAsStep table = create.createTable("TestTable"); C
我正在编写一个网络服务。我想知道是否 DSLContext创建对象很重?我可以在 DAO 方法中创建它们(并在方法完成时销毁它们)还是最好在请求开始时创建一个并将其传递给 DAO 类。 最佳答案 DS
我不确定我是否得到 this右: "... jOOQ's Configuration is not necessarily threadsafe, and queries are "attached"
我正在尝试使用 jOOq 将我从命令行编写和测试的查询转换为 DSLContext 查询,但遇到了问题。下面的查询旨在从具有 JSONB 列“tags”的表“campaign”中返回匹配 like 参
这就是我实现我想要的每个 jooq 查询的方式。 UtilClass{ //one per table more or less static void methodA(){ //my met
JOOQ 手册说明如下: Out of the box, all jOOQ provided publishers will block on theunderlying JDBC connectio
我正在尝试在我的 Micronaut 应用程序中使用 jOOQ,并让 jOOQ DSLContext 自 Action 为注入(inject)的 bean 提供给我的构造函数,但它找不到该 bean。
我将 JOOQ 与 Kotlin、Spring 和 PostgreSQL 一起使用。我能够运行 JOOQ 生成器和查询数据。问题是我无法在存储库类构造函数中注入(inject) DSLcontext。
这是我正在编写的一个使用 JooQ 3.7.0 的类的代码(不相关的部分已被删除);注意 AutoCloseable 的用途DSLContext的特征: public final class Jooq
我从 Controller 获取 orderBy 和 orderDirection,并希望解析它并将其与我使用 DSLContext 进行查询的存储库一起使用。 这是我的方法: public List
我使用 spring boot 和 JOOQ 创建了一个简单的项目,添加了依赖项“spring-boot-starter-jooq”。编译时应用程序无法启动。 这是 pom.xml: 4.
在我的 Vaadin 和 Spring Boot 应用程序中,我已从 jOOQ 3.14.12 更新到 3.15.0。此更新后,我的应用程序不再启动。这是我得到的错误: ***************
我是一名优秀的程序员,十分优秀!