【发布时间】:2015-11-09 03:38:27
【问题描述】:
我在尝试查询我的 JPA 实体类时收到 ClassCastException。我只希望 json 显示两列。那就是姓名和地址。如何在 JPA 中只显示选定的列?从调试开始,它必须是 for 循环。所以 List 是对象,我需要使右侧成为对象而不是列表正确?
实体
@Entity
@Table(name = "Personnel")
public class User implements Serializable {
private String id;
private String name;
private String address;
public User(String id, String name, String address)
{
this.id = id;
this.name = name;
this.address = address;
}
@Id
@Column(name = "name", unique = true, nullable = false)
public String getName() {
return this.name;
}....
//setters getters
查询/实施
public List<User> getRecords(User ent){
String sql = "select "
+ " usr.name, usr.address "
+ " from User usr"
+ " where usr.id = '1' ";
List<User> records = this.getSession().createQuery(sql).list();
for ( User event : records ) {
System.out.println( "Records (" + event.getName + ") );
}
return records;
}
更新
这是我尝试将结果对象声明为 List。方法必须是对象而不是对象吗?
public List<User> getRecords(User ent){
String sql = "select "
+ " usr.name, usr.address "
+ " from User usr"
+ " where usr.id = '1' ";
Map<String, String> results = new HashMap<String, String>();
List<Object[]> resultList = this.getSession().createQuery(sql).list();
// Place results in map
for (Object[] items: resultList) {
results.put((String)items[0], (String)items[1]);
results.toString();
}
return (List<User>) results;
【问题讨论】:
-
试试
List<User> records = (List<User>)this.getSession().createQuery(sql).list(); -
试过了,但仍然得到相同的 ClassCastException
-
我不确定我是否理解您的问题,但是...SQL Transformers 可能会对您有所帮助。
标签: java database hibernate jpa orm