Я хочу использовать JOOQ для доступа к моей базе данных из Ninja Framework. Как я могу получить соединение JDBC от контроллера?Inject java.sql.Connection в контроллер для Ninja Framework
Вот ресурсы, которые я нашел, которые не совсем сработали.
How to retrieve the datasource used by a persistence unit programmatically - Сложный набор шагов для подключения к EntityManager.
http://blog.jooq.org/2015/05/26/type-safe-queries-for-jpas-native-query-api/ - работает, создавая запрос в JOOQ и переходя в EntityManager.createNativeQuery. Это функционально, но это не так хорошо, как просто подключение.
Могу ли я вводить соединение в контроллер следующим образом:
public Result myController(@DBConnection Connection connection) {
List<String> articles = DSL.using(connection).selectFrom(ARTICLE).fetch(ARTICLE.TITLE);
return Results.html().render("template", articles);
}
DropWizards имеет плагин, который выглядит как победитель: https://github.com/benjamin-bader/droptools/tree/master/dropwizard-jooq
public BlogPost getPost(@QueryParam("id") int postId, @Context DSLContext database) {
BlogPostRecord post = database
.selectFrom(POST)
.where(POST.ID.equal(postId))
.fetchOne();
// do stuff
}
Есть ли способ заполучить «DataSource» в инфраструктуре ниндзя? –
Не то, чтобы я мог сказать. Кажется, что EntityManager является единственным легко доступным. – Joe