hibernate级联查询的问题

问题描述

根据项目要求,在每个表中加了删除标志deleted_flag,删除用1标志,未删除用0标志.在用hibernate本身的级联查询会把之前的子表已经删除的数据也检索出来.求最好的解决方法.问题补充:如果是一对一呢?怎么解决/您这上面只有对集合进行问题补充:没有其他方法了吗?把one-to-one改成one-to-many,也太奇怪了.换个角度来说,就是换了它们2者的关系了

解决方案

使用Filter引用http://www.qqgb.com/Program/Java/JavaJC/Program_158788.html <set name="employees" lazy="true"><key column="dept_id"/><one-to-many class="Employee"/><filter name="effectiveDate" condition=":asOfDate BETWEEN eff_start_dt and eff_end_dt"/> </set></class>Session session = ...;session.enabledFilter("effectiveDate").setParameter("asOfDate", new Date());List results = session.createQuery("from Employee as e where e.salary > :targetSalary").setLong("targetSalary", new Long(1000000)).list();
解决方案二:
增加where条件或者设置filter
解决方案三:
还有一个方法。刚同事跟我讲的。可以在hbm.xml的<class>里面写一个where。这个属性是有的。然后你可以写sql/hql(不记得是写哪个了)。这样就可以过滤了。你的where写在子类就好。你试试吧。
解决方案四:
没有什么奇怪的,大家都这样用,你不是“求最好的解决方法. ”吗?一对一映射成一对多也是大家一至推推荐的做法,从你的操作上面还有从你的效果方面都是最佳选择。其它方法就是写HQL了。没别的窍门了。
解决方案五:
你配置了lazy属性就OK啊!去我博客里有这样的关于hibernate的一些属性的文章。
解决方案六:
你把one-to-one 映射成one-to-many就行了。这样特殊处理一下。一般都这样做。。。

时间: 2024-11-23 07:35:03

hibernate级联查询的问题的相关文章

hibernate 级联查询

hibernate级联查询 1,实体类结构 Java代码   @Entity   @Table(name = "t_vote")   public class Vote {       private int id;       /***       * 1:最宜居<br>       * 2:最优户<br>       * 3:最佳物业       */       private int type;       private HouseBuilding h

关于hibernate多表级联查询的问题

问题描述 关于hibernate多表级联查询的问题 有一个问题,有4个表和对应的类A,B,C,D,A和B分别与C级联,C和D级联,但是A需要获取D中信息,但是B不需要,怎么在B里设置不查询D?怎么注解? 解决方案 多表级联Hibernate级联关系问题

级联查询(回答就有分)

问题描述 在不确定级联层数时,怎样进行级联查询,如:A{id,name,bid},b{id,name,cid},c{id,name,did}......以A表为基础,级联查询所有name,注意:不确定级联层数. 解决方案 本帖最后由 czp896019976 于 2011-04-17 16:55:30 编辑解决方案二:我用的数据库是mssqlserver解决方案三:没人会吗?解决方案四:不会/...........解决方案五:用多表连接查询解决方案六:不确定级联层数,估计就只好拼接sql语句了-

SSH框架网上商城项目第5战之商品类别级联查询和分页功能_java

上文我们完成了EasyUI菜单的实现,点击这里查看,这一节我们主要来写一下CategoryServiceImpl实现类,完成数据库的级联查询.一般项目从后往前做,先做service(我们没有抽取Dao,最后再抽取),做完了再做上面层. 在写之前,先看一下数据库中的表的情况: drop database if exists shop; /*创建数据库,并设置编码*/ create database shop default character set utf8; use shop; /*删除管理员

Mybatis 级联查询 (一对多 )

后台系统中 涉及到添加试卷 问题 答案的一个模块的.我需要通过试卷 查询出所有的试题,以及试题的答案.这个主要要使用到Mybatis的级联查询. 通过试卷 查询出与该试卷相关的试题(一对多),查询出试题的答案及分数(一对多). SelfTestTitle 实体类,SelfTestQuestion实体类,SelfTestAnswer实体类. package org.system.entity.self; import java.util.List; import org.core.entity.B

Hibernate属性查询简介

本文向大家介绍Hibernate属性查询,可能好多人还不了解Hibernate属性查询,没有关系,看完本文 你肯定有不少收获,希望本文能教会你更多东西. 今天说一下Hibernate属性查询:使用HQL的时候并不是把 hbm.xml 里面的所有属性取出来,只取出有 用的属性便可以了,举个例子: List list =session.createQuery ("select user.name,user.age from TUSER user").list(); Iterator it

spring-新手关于Spring管理Hibernate下查询性能的疑问

问题描述 新手关于Spring管理Hibernate下查询性能的疑问 我这么两段代码: 1.Query query = Dao.createQuery("from table"); list = query.list(); for(Table item : list){ Query query2 = Dao2.createQuery("select id from table2"); list = query2.list(); } 2.Query query = D

java-Java Hibernate中查询取值

问题描述 Java Hibernate中查询取值 Sql语法是这样的:![图片说明] 用Hibernate查询的语法不知道有没有问题呢? 还有最后一个问题: 我查询后的值存在query里面了, 我又要怎么取值呢? 求大家帮帮忙 解决方案 你那ID写里面就是死值了,要么用"?"代替,要么用 "+ +" 抱起来,哪有你那么写的 解决方案二: query.list()吧,然后看返回值是什么类型就用什么类型去接收就OK了.推荐看看这个先,里面有你想要的内容:http://z

hibernate hql查询问题

问题描述 hibernate hql查询问题 遇到个hibernate hql查询的问题,求高手解答 实体类A包含实体类T属性,实体类T有两个子类T1,T2,代码如下: A{ T t; } T{ } T1 extends T{ } T2 extends T{ } 现在我要查询A,条件是T为T2的类型,HQL语句应该怎么写? 解决方案 除了Java类与属性的名称外,查询语句对大小写并不敏感. 所以 SeLeCT 与 sELEct 以及 SELECT 是相同的,但是 org.hibernate.eg