Hibernate 查询视图出现如果一条记录中有空值则list为空的情况
2014-10-25 18:50
253 查看
</pre>通过hibernate 自动生成的视图 是2个类,<p></p><p>1.第一步 首先把2个类整合成一个pojo类 ,</p><p>Test .java Test_Id.java 整合成一个poji类</p><p></p><p>Hibernate 查询视图 出现 如果一条记录中有空值则查不出来的问题是因为使用了联合主键的方式设置的视图,就相当于一条记录是一个主键,如果一个为空就查不出来</p><p>2.因hibernate自动生成的视图没有主键,故将所有字段变成一个联合主键,这样字段中有一个为空,则list为空</p><p>原xml:</p><p></p><pre name="code" class="html"><composite-id> <key-property name="id" type="java.lang.Integer"> <column name="id" /> </key-property> <key-property name="kehu" type="java.lang.String"> <column name="kehu" /> </key-property> <key-property name="goodsset" type="java.lang.String"> <column name="goodsset" /> </key-property> </composite-id>
唯一的方法就是绑定一个主键 例如:绑定id,其他的不绑定
<composite-id> <key-property name="id" type="java.lang.Integer"> <column name="id" /> </key-property> </composite-id> <property name="kehu" type="java.lang.String"> <column name="kehu" /> </property> <property name="goodsset" type="java.lang.String"> <column name="goodsset" /> </property>
这样,如果id不为空则查出来的记录就不为空! 记得以后创建视图的时候绑定一个不为空的字段!!!
修正一下,上面绑定的<composite-id> 里面的id字段的值必须是唯一的不能相同,不然查出来的所有List的值都一样,这是因为hibernate缓存机制的原因,如果下一个记录的主键和上一个一样,那么hibernate就会调用缓存中的list值。
对于 有 group by 等分组的特殊情况的视图, 我们可以用id的MAX(),MIN(),函数来确定唯一性!
相关文章推荐
- 关于Hibernate中fatch=eager的bag集合(一个java List)使用Criteria查询出现重复记录的问题
- Hibernate3.2 中使用视图 查询记录重复
- hibernate中查询全部记录返回list,但是list.get(0)会报错
- hibernate 一对多 查询一方 出现重复记录
- hibhibernate中hql中的语句where语句查询List出现空
- 在设计数据库表时如果两张表中存在关联字段,那么这个字段在俩表之前名命名最好不要一致,以免联表查询出现in field list is ambiguous
- 转载:如何写个SQL语句查询一个字段里是否有重复记录如果有只读取其中一条记录
- Mybatis查询到多条记录但是映射到list集合只有一条或者条数不对
- 关于hibernate查询视图时,相同主键的两条记录映射问题【已解决】
- 一条语句中查询数据库表中state字段为不同情况下的记录数
- this.getHibernateTemplate().find()出现查询到的记录重复的问题
- 进行异常捕获,查询lastname为smith的员工信息,如果该员工不存在,则插入一条新记录;如果存在多个同名的员工,则输出其员工号,姓名和工资
- hibernate使用list映射,查询出来的list集合包含多个null记录
- oracle查询指定字段 重复记录大于一条的记录,并统计该记录出现的总次数
- Ibatis查询返回List集合时,第二次出现空的情况处理。
- 关于hibernate查询视图时,相同主键的两条记录映射问题【已解决】
- Hibernate查询视图,记录条数显示,但数据显示null
- 使用hibernate的this.getSession().createSQLQuery(sql).list();方法查询数据时出现查到的数据和想象的不一致,很是郁闷,诡异
- Hibernate Criteria查询_查询一条记录
- thinkphp5里面 使用where('id',$id)->select()查询一条记录,在视图页面出错