提取对象内的值

时间:2013-02-13 07:41:56

标签: java jpa

我当前的代码

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

2 个答案:

答案 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参考。