hibernate查询数据问题

问题描述

外键表的hbm.xml配置:<classname="pojo.DorkingInfo"table="DorkingInfo"schema="dbo"catalog="TraceSystem"><idname="dorkingNumber"type="java.lang.Integer"><columnname="DorkingNumber"/><generatorclass="identity"/></id><setname="productTraceInfos"inverse="true"><key><columnname="DorkingNumber"/></key><one-to-manyclass="pojo.ProductTraceInfo"/></set></class>

主键表的hbm.xml配置:<many-to-onename="dorkingInfo"class="pojo.DorkingInfo"fetch="select"outer-join="true"lazy="false"><columnname="DorkingNumber"/></many-to-one>

DAO层的方法:publicListfindByExample(Objectobject){//TODOAuto-generatedmethodstubtry{returnthis.getHibernateTemplate().findByExample(object);}catch(Exceptione){//TODO:handleexceptione.printStackTrace();returnnull;}}

Action里的代码1:Stringnumber=(String)request.getParameter("dorkingNumber");//获取外键表里的一个值ProductTraceInfopInfo=newProductTraceInfo();DorkingInfodk=newDorkingInfo();dk.setDorkingNumber(newInteger(number));//设置外键表映射的POJO里的值pInfo.setDorkingInfo(dk);Listlist=service.findByExample(pInfo);//根据主键表POJO查询System.out.println(list.size());//我外键表里只有一条DorkingNumber为1的记录,我想的是输入1之后查出这条记录//但是无论我输入什么数,这里都会把那条仅有的记录查出来,也就应该是程序把主键表里的所有记录都读了//请问这个我要怎么做?

解决方案

解决方案二:
如果我从主键表里获取每个外键表的对象,然后设置他们里面的值.然后再保存主键表的对象,是不是hibernate就把数据自动插入到外键表里了?
解决方案三:
<many-to-one>中有一个cascade属性可以设置
解决方案四:
2楼的可以详细点么?现在急啊.
解决方案五:
如果查出主键表,然后get里面的外键表的对象,再次赋值,然后直接save主键表的对象,外键表会自动保存的
解决方案六:
现在还是查询的问题,照理来说,我创建ProductTraceInfo的对象:ProductTraceInfopInfo=newProductTraceInfo();和他的子对象:DorkingInfodk=newDorkingInfo();然后设置子对象的值:dk.setDorkingNumber(newInteger(number);把子对象加到:ProductTraceInfo中:pInfo.setDorkingInfo(dk);然后查询:Listlist=service.findByExample(pInfo);应该只查出我对应的单条记录才对啊.昨天又加了两条记录进去,无论我输入什么,甚至是不存在的number号,它都把所有记录读出来了.郁闷死了.请大家千万帮忙啊!就算是发个类似的示例代码给我看看也行
解决方案七:
不能沉啊,这个问题让我郁闷很久,就算是根据外键表的ID去查,还是把所有记录都查出来了,晕死
解决方案八:
你可以设置一下相关表的级联问题
解决方案九:
引用1楼Z8157522的回复:

如果我从主键表里获取每个外键表的对象,然后设置他们里面的值.然后再保存主键表的对象,是不是hibernate就把数据自动插入到外键表里了?

<setname="productTraceInfos"inverse="true"cascade="all"><key><columnname="DorkingNumber"/></key><one-to-manyclass="pojo.ProductTraceInfo"/></set>

这样Hibernate会自动维护他们之间的级联关系的

时间: 2024-10-08 22:55:50

hibernate查询数据问题的相关文章

hibernate查询速度问题

问题描述 用hibernate查询数据,记录1000条,一次查出,不分页,从按查询到显示在jsp需要10几秒,请问是否正常?问题补充:要求不分页的,直接显示1000条 解决方案 应该不是慢在查询上面了,应该是查询的1000条记录放在List之中,以及把List之中的objcet显示给页面速度慢.你可以试一下直接在数据库中查询这些记录 看看速度多少,如果直接查1~2s Hibernate查也就在4s 应该用不了. 我的意思是 Hibernate不比直接SQL查慢多少.解决方案二:查询有没有表连接.

json 返回hibernate load查询数据出错

问题描述 json 返回hibernate load查询数据出错 我用get()方法查询出来的数据print到页面不会有错!但是用load()方法查询出来的数据print到页面是就出现错误!如果在实体中设置lazy=""false""也不会出错!哪位高手给说明一下原因, 解决方案 懒加载呗........ 解决方案二: 那怎么解决,不会是每一个实体中都设置lazy=""false""吧 解决方案三: 看下load和get的区别

hibernate大量数据查询 内存溢出问题

问题描述 现在项目中需要对数据进行导出,1万条记录.在excel导出过程,查到hibernate查询时候,内存值会有100M的峰值,加上其他业务,就会报内存溢出问题.hibernate如何做到list查询出来数据,内存峰值能够比较小(实际对象占用只有50M样子),数据需要导出,所以iterator也不适合.那位大牛知道如何查询内存值保持一定的稳定值,变化不能太大 解决方案 个人认为针对具体的问题要根据实际情况选择最适合的工具,楼主说的这种场景其实完全可以用数据库工具来做,没必要非得用Hibern

关于Hibernate中数据查询问题,ListAll

问题描述 关于Hibernate中数据查询问题,ListAll 这是是我的方法,红线是传过来的值,然后就是死循环? 解决方案 这个是调用的方法,请大神们,指点!!! 解决方案二: 你可以查看我的博客:http://blog.csdn.net/u014427391/article/details/50621111 解决方案三: 你可以查看我的博客:http://blog.csdn.net/u014427391/article/details/50621111 解决方案四: 你可以查看我的博客:ht

Hibernate作为数据持久层的分析和研究

数据 摘要 在Java技术中有许多方法可以对数据进行持久化,持久层也是Java应用程序中最重要的部分之一.本文在分析了3种持久层主流解决方案的基础上,介绍了O-R映射开源项目Hibernate,并介绍了在Web应用开发中怎样配置Hibernate的环境,并使用它建立一个应用. 关键字 hibernate,数据持久化,JDBC, EJB,JDO 数据持久层简介 J2EE的三层结构是指表示层(Presentation),业务逻辑层(Business Logic)以及基础架构层(Infrastruct

用hibernate查询一段时间的记录

这是在一个群里讨论的问题. 方法很多:如果说数据库中数据的存储是用date类型的话,改怎么做,如果说做数据迁移的话又该怎么做? 最终的讨论方案在用字符串存储格式上比较好,毕竟各个数据库对时间的存储存在差异. 一下是我用hibernate中的HQL,和QBC两种检索方式对一段时间内的数据进行检索. 1 package com.duduli.li; 2 3 import java.util.Date; 4 import java.util.Iterator; 5 import java.util.L

Hibernate获取数据方式与缓存使用

Hibernate获取数据的方式有不同的几种,其与缓存结合使用的效果也不尽相同,而Hibernate中具体 怎么使用缓存其实是我们很关心的一个问题,直接涉及到性能方面. 缓存在Hibernate中主要有三个方面:一级缓存.二级缓存和查询缓存:一级缓存在Hibernate中对应 的即为session范围的缓存,也就是当session关闭时缓存即被清除,一级缓存在Hibernate中是不可配置 的部分:二级缓存在Hibernate中对应的即为SessionFactory范围的缓存,通常来讲Sessi

hibernate+mysql数据刷新的问题?

问题描述 我的hibernate配置如下<propertyname="connection.url">jdbc:mysql://192.168.10.195:3306/radius?useUnicode=true&characterEncoding=UTF-8</property><propertyname="dialect">org.hibernate.dialect.MySQLDialect</property&

java-jdbc 来查询视图 和 hibernate 查询视图 问题

问题描述 jdbc 来查询视图 和 hibernate 查询视图 问题 伙伴们 现在我在用 jdbc 查询视图 和 hibernate查询视图 都显示不出来数据 (list用来接受数据,调试时的list的size不为0,可数据都是Null 这是怎么回事) 解决方案 JPA的视图查询Hibernate查询视图数据Hibernate createQuery查询视图返回list为空 解决方案二: 如果你给一下查询的代码,或许可以帮你分析一下