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