나는 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을 throw하는 경우 : IJ000453 : java : jboss/datasources/postgresDS 예외에 대한 관리 연결을 가져올 수 없습니다.
연결을 위해 Wildfly 연결 풀에 액세스 할 수있는 방법이 있습니까? SQL을 실행 한 후 연결 풀로 돌아갑니다? Wildfly에 연결 풀링 메커니즘이 있으면 연결 풀링 메커니즘을 구현하고 싶지 않습니다.
아니, 새로운 것을 시도하고 싶습니다. 나는 약 2 년 동안 JPA를 사용했다. – goku91
답변 감사합니다 @ BalusC. 나는 당신의 의견을 이해하지만, JPA 대신 JPA 대신 또는 EclipseLink와 Querydsl이 좋은 대안을 찾고있다. 이런 식으로 나는 여전히 Hibernate와 엔티티 관리자가 필요하다. – goku91
어쩌면 나는 그것의 요점을 놓쳤을지도 모른다. 그리고 나의 boses도 그것을 놓쳤다. 그러나 과거에는 JPA와 Hibernate에 많은 문제가있었습니다 (예 : 읽기 어려운 쿼리, 문제 해결 등). – goku91