Hibernate 如何对以下场景进行hql查询

Hibernate 如何对以下场景进行hql查询,hibernate,Hibernate,在这里,我创建了一个表名为t_2013的jpa。我的问题是如何使用相同的jpa从t_2014获得数据。有没有办法将单个jpa访问到具有类似表结构的多个表 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")

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

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;

如果我迭代上述格式,我会得到以下错误:java.lang.Integer无法转换为com.model.Test。如何从类似的表结构中获取数据…

您使用的不是HQL,而是SQL。HQL使用实体,而不是表。测试映射到2013年,而不是2014年。阅读关于HQL的Hibernate文档


您需要的是从测试t中选择t,它将返回一个包含t_2013中所有行的列表。如果您想要t_2014中的行,那么您需要一个映射到t_2014的实体。

我知道。。我需要的是如何使用单个jpa从类似的表结构表中获取数据。每个表都必须映射到自己的实体。这两个表应该是一个单独的表,有一个年份列。好的,JB,你提到的关于单独一个表的内容-我不明白。请举个例子。我想从你的表的名称来看,你有两个完全相同的表,一个存储2013年的数据,另一个存储2014年的数据。如果这是正确的,那么使用一个表来存储所有内容,并添加一个包含2013年或2014年的年份列,以了解该行是2013年的行还是2014年的行。
 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];
 }