-
Hibernata无主键表查询问题5
自动生成的HBM
<class name="com.cntomorrow.zyqx.entity.Yhgwdz" table="用户岗位对照表" schema="TELEUSER">
<composite-id name="id" class="com.cntomorrow.zyqx.entity.YhgwdzId">
<key-many-to-one name="yhjbxx" class="com.cntomorrow.zyqx.entity.Yhjbxx" lazy="false">
<column name="用户ID" length="6" />
</key-many-to-one>
<key-many-to-one name="gwxx" class="com.cntomorrow.zyqx.entity.Gwxx" lazy="false">
<column name="岗位ID" length="6" />
</key-many-to-one> .......
还有两个类,一个只有ID属性的类,一个有其他属性的类(因为表没有主键) 然后我想加个条件,只能加到这个只有ID属性的类里面。 如下:
Yhgwdz yhh=new Yhgwdz();//只有id属性的那个类
YhgwdzId yy=new YhgwdzId();//其他属性的类
Page page=new Page(); Yhjbxx yh=new Yhjbxx(); yh.setYhid(212);
//加入条件 yy.setYhjbxx(yh); yhh.setId(yy);//加入条件
然后通过这个查询
Session sss = getSession(); Criteria criteria = sss.createCriteria(Yhgwdz.class);
if (yhgwdz != null) {
if (yhgwdz.getId() != null && !"".equals(yhgwdz.getId())) {
criteria.add(Restrictions.eq("id", yhgwdz.getId())); }
List lii = criteria.list();
结果我发现他把所有条件都给列上了。但是除了我传的那个条件,剩下的都为空,所以导致查不出东西来。不传条件一切正常。以下是自动生成sql语句: select this_.用户ID as 用户ID6_0_, this_.岗位ID as 岗位ID6_0_, this_.部门ID as 部门ID6_0_, this_.加入时间 as 加入时间6_0_, this_.批准人ID as 批准人ID6_0_, this_.操作者ID as 操作者ID6_0_ from TELEUSER.用户岗位对照表 this_ where (this_.用户ID=? and this_.岗位ID=? and this_.部门ID=? and this_.加入时间=? and this_.批准人ID=? and this_.操作者ID=?) 求解怎么修改正常
2012年7月16日 14:17
相关推荐
在Hibernate中,对无主键表的操作与普通实体基本相同,只是在保存和查询时需要传入整个复合主键对象。例如,创建一个新的订单: ```java OrderKey key = new OrderKey(); key.setCustomerId("123"); key.setOrderId...
联合主键(Composite Primary Key),是指在数据库表中使用两个或多个字段共同作为主键来唯一标识每一行记录。这种方式在实际应用中非常常见,尤其是在需要通过多维度数据来确定唯一性的场景下。 ### Hibernate联合...
关于Hibernate的各种主键生成策略与配置详解
* 提高查询效率:使用复合主键可以提高查询效率,因为 Hibernate 框架可以根据复合主键快速地定位到对应的实体。 * 提高数据一致性:使用复合主键可以提高数据的一致性,因为复合主键可以确保数据的唯一性和正确性。...
然而,当我们面临复杂的数据表结构,尤其是涉及到复合主键时,如何在Hibernate中进行配置和使用就显得尤为重要。本文将深入探讨Hibernate对复合主键的支持,帮助开发者更好地理解和应用这一特性。 一、什么是复合...
在Java持久化框架Hibernate中,联合主键(Composite Key)是一种特殊的数据结构,用于标识数据库表中的一条记录。与单个字段作为主键不同,联合主键由两个或更多个字段共同组成,形成一个唯一的标识。在本教程中,...
在业务代码中,创建和操作复合主键的实体对象与普通实体对象并无太大区别。只需要确保在创建新的`OrderItem`实例时,为其`id`属性提供正确的`OrderItemId`实例即可。 总结,复合主键在Hibernate中是通过`@...
在Java的持久化框架Hibernate中,主键生成策略是一个至关重要的概念,它决定了数据库表中主键值如何自动生成。主键通常是表中唯一标识记录的一列,对于数据的完整性和一致性至关重要。以下是对Hibernate中主键生成...
在这个场景中,“hibernate使用主键关联的一对一关系”指的是通过共享主键来实现两个实体类之间的这种一对一绑定。下面我们将深入探讨这一主题。 首先,我们需要理解一对一关系的概念。在数据库中,一对一关系意味...
以下是关于Hibernate主键生成方式的详细说明: 1. **Identity方式**:`<generator class="identity"/>` 这种方式依赖于数据库自身的自动增长机制。例如,在MySQL中,它可以与`AUTO_INCREMENT`属性配合使用。当...
其中,主键生成策略是Hibernate配置中的一个重要部分,它决定了表中的主键值如何生成。本文将重点介绍在Oracle数据库环境下,使用Hibernate的“native”策略来生成主键的具体方法及注意事项。 #### 二、主键生成...
复合主键映射 <br>通常将复合主键相关属性,单独抽取出来,建立一个独立的类 * 必须实现序列化接口 * 必须实现equals和hashcode方法 采用标签进行映射,其它属性采用正常映射
Hibernate各种主键生成策略详解,包括 assigned increment hilo seqhilo sequence identity native uuid foreign uuid.hex sequence-identity 等
### hibernate主键生成策略详解 #### 一、assigned **assigned** 主键生成策略意味着主键的值是由外部程序负责生成的,并且在执行 `save()` 方法之前必须明确指定一个值。在这种策略下,Hibernate 不参与主键的...
### Hibernate 主键生成策略详解 #### 一、概述 Hibernate 是一款开源的对象关系映射 (ORM) 框架,它允许开发人员将 Java 对象映射到数据库表中的记录,从而极大地简化了数据访问层的开发工作。在 Hibernate 中,...
“increment” 主键按数值顺序递增。此方式的实现机制为在当前应用实例中维持一个变量,以保存着当前的最大值,之后每次需要生成主键的时候将此值加1作为主键。这种方式可能产生的问题是:不能在集群下使用。
1主键常用的生成策略 2对数据库的依赖性总结 3关于主键生成策略的选择 详细解释
在Java的持久化框架Hibernate中,复合主键(Composite Key)是一种特殊的数据结构,用于处理具有多个字段作为唯一标识的情况。本实例将深入探讨如何在Hibernate中实现复合主键,并提供一个具体的示例来帮助理解。 ...