使用Hibernate、Spring、MySQL 5.7和Lombok复制结果
我有一些简单的代码,比如:使用Hibernate、Spring、MySQL 5.7和Lombok复制结果,mysql,hibernate,spring-mvc,Mysql,Hibernate,Spring Mvc,我有一些简单的代码,比如: @Transactional(readOnly = true, timeout = 10) public List<MyClass> findThem() { Criteria criteria = getSession().createCriteria(MyClass.class); @SuppressWarnings("unchecked") List<MyClass> theList = criteria.li
@Transactional(readOnly = true, timeout = 10)
public List<MyClass> findThem() {
Criteria criteria = getSession().createCriteria(MyClass.class);
@SuppressWarnings("unchecked")
List<MyClass> theList = criteria.list();
return theList;
}
更新3:
我还能够在不使用结果转换器的情况下使用HQL(节略)获得正确的结果:
String hql = "from MyClass myClass";
Query q = getSession().createQuery(hql);
List<MyClass> myClasses = q.list();
return myClasses;
String hql=“来自MyClass MyClass”;
Query q=getSession().createQuery(hql);
List myClasses=q.List();
返回MyClass;
将比较每个查询的SQL输出(有很多输出需要尝试理解)。查询中一定发生了一些连接,这会增加resultset,从而增加您的计数,我经常遇到类似的问题,您可以尝试在集合中而不是列表中获取数据,或者观察在DB中触发的实际查询。myclass是否与另一个实体有一个或多个关系。如果是,则如果在一对多关系中将提取类型定义为“渴望”,则可能会通过hibernate向您提供重复记录。请检查@PushpendraPal good think,但不检查“渴望提取”类型。查找发出的SQL命令。这可能会给您(或我们)一个错误的线索。@bphilipnyc您的MyClass与其他类之间有一对多的关系吗?如前所述,MyClass使用集合,但最后一个属性除外,我需要它作为一个列表,因为它必须允许重复。SQL查询确实涉及其中,但将尝试进行访问。
String hql = "from MyClass myClass";
Query q = getSession().createQuery(hql);
List<MyClass> myClasses = q.list();
return myClasses;