如何为下面的场景进行hql查询

时间:2013-12-21 08:50:04

标签: hibernate

I am a beginner to hibernate....
I have a two tables like,

t_2013
id  name
1   donald


t_2014
id   name
2    charles

This is my jpa,


  @Entity
  @Table(name="t_2013")
  public class Test implements Serializable {

@Id
@GeneratedValue
@Column(name="id")
private int id;

@Column(name="name")
private String name;

这里我创建了一个表名为t_2013的jpa。我的问题是如何使用相同的jpa从t_2014获取数据。有没有办法访问具有类似表结构的许多表的单个jpa

 Query
 -----
  List<Test> list=    hibernateTemplate.getSessionFactory().openSession().createSQLQuery("Select * from t_2014").list();

error:java.lang.ClassCastException:

 or

 List<Object> list=    hibernateTemplate.getSessionFactory().openSession().createSQLQuery("Select * from t_2014").list();

 if i use above code how to iterate it.

 Iterator ir=list.iterator();
 while (pairs.hasNext()) {
 Object[] pair = (Object[]) pairs.next();
 Test obj=(Test)pair[0];
 }

如果我迭代上面的格式我得到了这个错误:java.lang.Integer不能转换为com.model.Test。如何从类似的表结构中获取数据......

1 个答案:

答案 0 :(得分:0)

你没有使用HQL,而是使用SQL。 HQL使用实体,而不是表。 Test映射到t _ 2013,而不是t_2014。阅读有关HQL的Hibernate文档。

您想要的是select t from Test t,它会返回包含List<Test>所有行的t_2013。如果您想要t_2014的行,那么您需要一个映射到t_2014的实体。