我当前的代码
Object resultQuery;
EntityManagerFactory emf = Persistence.createEntityManagerFactory("TESTPU");
EntityManager em = emf.createEntityManager();
TypedQuery<Account> tp = em.createQuery("SELECT a FROM Account a WHERE a.email = :email AND a.pwd = :pwd AND a.role = 'admin'", Account.class);
tp.setParameter("email", this.username);
tp.setParameter("pwd", this.password);
resultQuery = tp.getSingleResult();
结果存储在resultQuery
对象中,但我对如何在对象中提取数据感到困惑。
假设我要从name
对象
resultQuery
答案 0 :(得分:3)
看起来问题是resultQuery
的类型。鉴于tp
的类型为TypedQuery<Account>
,我会期望类似:
Account result = tp.getSingleResult();
...在这一点上,很容易从Account
获得名称。例如:
String name = result.getName();
是否有任何理由在代码中将resultQuery
键入Object
而不是Account
?
我自己没有使用TypedQuery
,但documentation for getSingleResult()
肯定表明这是正确的做法。
答案 1 :(得分:0)
更新:
在这种情况下,tp.getSingleResult()
将返回Account
个对象。您可以将返回的值(无任何强制转换)分配给Account
参考。