遇到的问题:
用Hibernate查询备份表中的记录,比如实体对象Student,映射的表名是student。
在oracle数据库中为这个student表定义了触发器,每个月生成一张备份表,
表名如:student_201201,student_201202,student_201203,student2012_04.....;
现在要从这些备份表里面查询记录,可是由于Student实体已经映射了表名为student,所以现在用StudentDao查询备份表中的记录就会报错:
org.hibernate.hql.ast.QuerySyntaxException:student_2012_05 is not mapped...;
我在StudentDao中的查询方法是这么写的:
public List<Student> getBackupStudent(String year,String month){ List<Student> students = new ArrayList<Student>(); String sql = " SELECT student FROM student_"+year+month+" student ";" Query query = this.createQuery(sql); students = query.list(); return students; }
Hibernate 后台生成的查询语句是这样的:
SELECT student FROM student_201205 student
问题即使那个错误,这个student_201205没有对应的实体,应为他是用数据库的触发器生成的表,Hiberanate 就说它没有Mapped...
像我这样的问题,我想大家也应该可能遇到过吧,请问大家是如何解决的啊!!!!