私はWildfly 10.0アプリケーションサーバーとQuerydslで作業しようとしています。私の問題は、QuerydslがSQLクエリをエバリュートするための接続が必要なことです。このコードスニペットには、私が接続できる唯一の方法が示されています。wildfly接続プールから接続する方法はありますか?
@ConcurrencyManagement(ConcurrencyManagementType.BEAN)
@Singleton
public class ServiceTest {
@Resource(lookup = "java:jboss/datasources/postgresDS")
private DataSource ds;
public Memeber getMemeberById(final int id) {
try {
Connection connection = ds.getConnection();
Memeber member = new SQLQuery<Memeber>(new Configuration(new PostgreSQLTemplates()))
.select(Projections.bean(Memeber.class, QMember.member.id.as(Memeber.ID),
QMember.member.name.as(Memeber.NAME)))
.from(QMember.member).where(QMember.member.id.eq(id)).fetchOne();
connection.close();
return member;
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}
この解決策は機能しますが、いくつかの問題があります。すべての接続が使用中の場合、ds.getConnection()はjavax.resource.ResourceExceptionをスローします。IJ000453:java:jboss/datasources/postgresDS例外の管理接続を取得できません。
Wildfly接続プールにアクセスして接続する方法はありますか? SQLの実行後に接続プールに戻りますか? Wildflyに接続プーリング機構が実装されている場合は、接続プーリング機構を実装したくありません。
いいえ、私は新しいものを試してみたいです。私は約2年間JPAを使いました。 – goku91
ありがとうございます@BalusC。私はあなたの意見を理解していますが、JPAの代わりに代替のソリューションを探しています.HibernateまたはEclipseLinkとQuerydslは素晴らしいです。このようにして、私はまだHibernateとエンティティマネージャが必要です。 – goku91
たぶん私はそれのポイントを逃したと私のボーズもそれを逃した。しかし過去には、JPAやHibernateには数多くの問題があります(例えば、読みにくいクエリやチャットの問題など)。 – goku91