javax.persistence.TypedQuery.getSingleResult()NoResultException,即使记录存在
javax.persistence.TypedQuery.getSingleResult()NoResultException,即使记录存在。下面的代码很好,记录率为99%,但结果为1%。DB是SQLServer2016。当我使用javax.persistence.Query createNativeQuery和Query.getResultList()时,我有一个模板列表javax.persistence.TypedQuery.getSingleResult()NoResultException,即使记录存在,java,sql-server,hibernate,jpa,Java,Sql Server,Hibernate,Jpa,javax.persistence.TypedQuery.getSingleResult()NoResultException,即使记录存在。下面的代码很好,记录率为99%,但结果为1%。DB是SQLServer2016。当我使用javax.persistence.Query createNativeQuery和Query.getResultList()时,我有一个模板列表 你可以通过调试来解决这个问题。在本例中,您将在JPA提供者日志中查看调用的SQL。FWIW JPQL以“SELECT{al
你可以通过调试来解决这个问题。在本例中,您将在JPA提供者日志中查看调用的SQL。FWIW JPQL以“SELECT{alias}”开头。谢谢Neil,调用的sql是正确的,并且sql在从查询浏览器执行时正在获取数据。@Sandepkumar编辑并粘贴实体代码
public TApplicationDocument getDocumentById(int id) {
TypedQuery<TApplicationDocument> q = getEntityManager().createQuery(
"FROM TApplicationDocument where transientKey = :transientKey", TApplicationDocument.class);
q.setParameter("transientKey", id);
TApplicationDocument d=null;
try {
d = q.getSingleResult();
System.out.println("AppDocumentTitle "+d.getAppDocumentTitle());
} catch (NoResultException e) {
logger.debug("No result forund for... "+id);
System.out.println("No result forund for... "+id);
} catch (Exception e) {
logger.debug(" Tapp Dao IMple Exception for... "+id);
}
return d;
}
public class JdbcSelectDemo {
public static void main(String[] args) { `
String dbURL = "XXXXXXXXXX";`
String username = "XXXXXXX"; String password = "XXXXXXXXX";
try (Connection conn = DriverManager.getConnection(dbURL, username, password)) {
String sql = "SELECT * FROM TApplicationDocument t where transientKey='115'";
System.out.println("Sql to be executed:"+sql);
Statement statement = conn.createStatement();
ResultSet result = statement.executeQuery(sql);
while (result.next()){
System.out.println("in side"+result.getString(1));
}
System.out.println("End...");
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}