/**
* Use this for COUNT() and similar sql queries which are guaranteed to return a result
*/
@Nonnull
@CheckReturnValue
public <T> T selectSqlQuerySingleResult(@Nonnull final String queryString,
@Nullable final Map<String, Object> parameters,
@Nonnull final Class<T> resultClass) throws DatabaseException {
final EntityManager em = this.databaseConnection.getEntityManager();
try {
final Query q = em.createNativeQuery(queryString);
if (parameters != null) {
parameters.forEach(q::setParameter);
}
em.getTransaction().begin();
final T result = resultClass.cast(q.getSingleResult());
em.getTransaction().commit();
return setSauce(result);
} catch (final PersistenceException | ClassCastException e) {
final String message = String.format("Failed to select single result plain SQL query %s with %s parameters for class %s on DB %s",
queryString, parameters != null ? parameters.size() : "null", resultClass.getName(), this.databaseConnection.getName());
throw new DatabaseException(message, e);
} finally {
em.close();
}
}
DatabaseWrapper.java 文件源码
java
阅读 36
收藏 0
点赞 0
评论 0
项目:SqlSauce
作者:
评论列表
文章目录