2010-11-15 48 views
0

我想,当我在执行一个EJB 3.0会话Bean这个查询什么是我应该return.I试图返回Listits返回它创建了一个矢量对象执行namedquery关于JPA namedquery

@NamedQuery(name="getEmployeeDetails",query="select e.username,e.email,e.image,e.firstname,e.lastname from Employee e where e.empid=?1") 

现在怀疑一个classcast异常。员工表包含密码和其他我不想获取的机密信息等字段。所以我没有使用select e from Employee e。 我正在学习JPA任何人都可以帮忙。

回答

6

下面是示例查询,它只提取必填字段,但必须为其构造此类构造函数。

查询:SELECT NEW package_name.Employee(e.username,e.email,e.image,e.firstname,e.lastname) FROM Employee e where e.empid=?1;

它将返回Employee实体与其余的将有默认值选定字段&。

5

通过在返回的对象上调用.getClass()来检查返回的类型。我猜这是一个数组。

但这不是一个真正使用JPA的好方法。选择整个实体,然后只是不使用你不需要的东西。这并不是如此的表现。

+0

谢谢投票了。但Nayan的答案是我所需要的。无论如何感谢您的时间。 – Harish 2010-11-16 07:32:44