请帮写个hibernate带外键的hql语句

问题描述

我有4个表,各对应着主外键关系,请看映射文件:我想做这样的sql查询:select * from hr_branch_info where hbi_n_prior=? and hbi_v_name=?请把它转写成HQL语句,我刚接触hibernate不大会。如能给解释一下就更好了。 <hibernate-mapping> <class name="com.pojo.HrBranchInfo" table="hr_branch_info" schema="public"> <id name="hbiNId" type="java.lang.Integer"> <column name="hbi_n_id" /> <generator class="sequence" /> </id> <many-to-one name="hrEmpBase" class="com.pojo.HrEmpBase" fetch="select"> <column name="hbi_n_operator" not-null="false"/> </many-to-one> <many-to-one name="hrBranchInfo" class="com.pojo.HrBranchInfo" fetch="select"> <column name="hbi_n_prior" not-null="false" /> </many-to-one> <property name="hbiVName" type="java.lang.String"> <column name="hbi_v_name" length="40" not-null="true" /> </property> <property name="hbiCState" type="java.lang.String"> <column name="hbi_c_state" length="1" not-null="true" /> </property> <property name="hbiVDesc" type="java.lang.String"> <column name="hbi_v_desc" length="200" /> </property> <property name="hbiCTime" type="java.lang.String"> <column name="hbi_c_time" length="14" /> </property> <property name="hbiNSortindex" type="java.lang.String"> <column name="hbi_n_sortindex" length="10" /> </property> <property name="hbiVTemp1" type="java.lang.String"> <column name="hbi_v_temp1" length="100" /> </property> <property name="hbiVTemp2" type="java.lang.String"> <column name="hbi_v_temp2" length="100" /> </property> <property name="hbiVTemp3" type="java.lang.String"> <column name="hbi_v_temp3" length="100" /> </property> <set name="hrRelationBranduties" inverse="true"> <key> <column name="hbi_n_id" not-null="true" /> </key> <one-to-many class="com.pojo.HrRelationBranduty" /> </set> <set name="hrBranchInfos" inverse="true"> <key> <column name="hbi_n_prior" not-null="true" /> </key> <one-to-many class="com.pojo.HrBranchInfo" /> </set> </class></hibernate-mapping>  <hibernate-mapping> <class name="com.pojo.HrRelationBranduty" table="hr_relation_branduty" schema="public"> <id name="hrbNId" type="java.lang.Integer"> <column name="hrb_n_id" /> <generator class="sequence" /> </id> <many-to-one name="hrDutyInfo" class="com.pojo.HrDutyInfo" fetch="select"> <column name="hdi_n_id" not-null="true" /> </many-to-one> <many-to-one name="hrBranchInfo" class="com.pojo.HrBranchInfo" fetch="select"> <column name="hbi_n_id" not-null="true" /> </many-to-one> <property name="hrbCState" type="java.lang.String"> <column name="hrb_c_state" length="1" not-null="true" /> </property> <property name="hrbVTemp1" type="java.lang.String"> <column name="hrb_v_temp1" length="100" /> </property> <property name="hrbVTemp2" type="java.lang.String"> <column name="hrb_v_temp2" length="100" /> </property> <property name="hrbVTemp3" type="java.lang.String"> <column name="hrb_v_temp3" length="100" /> </property> </class></hibernate-mapping>   <hibernate-mapping> <class name="com.pojo.HrEmpBase" table="hr_emp_base" schema="public"> <id name="hebNId" type="java.lang.Integer"> <column name="heb_n_id" /> <generator class="sequence" /> </id> <many-to-one name="hrDutyInfo" class="com.pojo.HrDutyInfo" fetch="select"> <column name="hdi_n_id" not-null="true" /> </many-to-one> <property name="hebVName" type="java.lang.String"> <column name="heb_v_name" length="40" not-null="true" /> </property> <property name="hebVUsedname" type="java.lang.String"> <column name="heb_v_usedname" length="40" /> </property> <property name="hebVEngname" type="java.lang.String"> <column name="heb_v_engname" length="40" /> </property> <property name="hebCSex" type="java.lang.String"> <column name="heb_c_sex" length="1" /> </property> <property name="hebCBir" type="java.lang.String"> <column name="heb_c_bir" length="8" /> </property> <property name="hebCMobile" type="java.lang.String"> <column name="heb_c_mobile" length="20" /> </property> <property name="hebCHometel" type="java.lang.String"> <column name="heb_c_hometel" length="20" /> </property> <property name="hebVAddr" type="java.lang.String"> <column name="heb_v_addr" length="200" /> </property> <property name="hebVEmail" type="java.lang.String"> <column name="heb_v_email" length="40" /> </property> <property name="hbiNId" type="java.lang.Integer"> <column name="hbi_n_id" not-null="true" /> </property> <property name="hebCIndate" type="java.lang.String"> <column name="heb_c_indate" length="14" not-null="true" /> </property> <property name="hebCInstatus" type="java.lang.String"> <column name="heb_c_instatus" length="1" not-null="true" /> </property> <property name="hebCType" type="java.lang.String"> <column name="heb_c_type" length="1" not-null="true" /> </property> <property name="hebVPhoto" type="java.lang.String"> <column name="heb_v_photo" length="60" /> </property> <property name="hebCPass" type="java.lang.String"> <column name="heb_c_pass" length="20" not-null="true" /> </property> <property name="hebVSupperson" type="java.lang.String"> <column name="heb_v_supperson" length="40" /> </property> <property name="hebVTemp1" type="java.lang.String"> <column name="heb_v_temp1" length="100" /> </property> <property name="hebVTemp2" type="java.lang.String"> <column name="heb_v_temp2" length="100" /> </property> <property name="hebVTemp3" type="java.lang.String"> <column name="heb_v_temp3" length="100" /> </property> <set name="hrBranchInfos" inverse="true"> <key> <column name="hbi_n_operator" /> </key> <one-to-many class="com.pojo.HrBranchInfo" /> </set> </class></hibernate-mapping>   <hibernate-mapping> <class name="com.pojo.HrDutyInfo" table="hr_duty_info" schema="public"> <id name="hdiNId" type="java.lang.Integer"> <column name="hdi_n_id" /> <generator class="sequence" /> </id> <property name="hdiVName" type="java.lang.String"> <column name="hdi_v_name" length="40" not-null="true" /> </property> <property name="hdiCState" type="java.lang.String"> <column name="hdi_c_state" length="1" not-null="true" /> </property> <property name="hdiNSortindex" type="java.lang.Integer"> <column name="hdi_n_sortindex" not-null="true" /> </property> <property name="hdiVTemp1" type="java.lang.String"> <column name="hdi_v_temp1" length="100" /> </property> <property name="hdiVTemp2" type="java.lang.String"> <column name="hdi_v_temp2" length="100" /> </property> <property name="hdiVTemp3" type="java.lang.String"> <column name="hdi_v_temp3" length="100" /> </property> <set name="hrEmpBases" inverse="true"> <key> <column name="hdi_n_id" not-null="true" /> </key> <one-to-many class="com.pojo.HrEmpBase" /> </set> <set name="hrRelationBranduties" inverse="true"> <key> <column name="hdi_n_id" not-null="true" /> </key> <one-to-many class="com.pojo.HrRelationBranduty" /> </set> </class></hibernate-mapping> 非常感谢!

解决方案

from HrBranchInfo where hrBranchInfo.hbiNId=? and hbiVName=?

时间: 2024-11-10 07:07:40

请帮写个hibernate带外键的hql语句的相关文章

如何在EF 5.0 中做带外键的数据新增

问题描述 如何在EF 5.0 中做带外键的数据新增 各位大牛好,我有一个EF的问题: 我有一张主表,包含2个子表,是用外键关联的,但是其中一张子表又是另一个子表的子表,也是用外键关联的,请问在EF中如何新增这3张表的记录.

hibernate 删除 外键约束

问题描述 写了两个类: Subject(一端) Comment(多端)其对应hbm xml(截取)为:subject.hbm.xml: <set name="comments" lazy="true" inverse="true" cascade="all" sort="unsorted" > <cache usage="read-write" /> <ke

Hibernate基于外键的查询方法

我在解决这个问题的时候搜到了百度上的同样问题:hibernate中表怎么根据外键查询 ?? 它的设计为:我有两张表:Teacher id(主键) name Student id(主键) name tid(外键对应Teacher的id) public List findStudentByTeacher(Teacher teacher) { try { session = this.openSession(); String HQL = "select s.name from Student as

hibernate级联外键为NULL

问题描述 级联失败的问题请问:ORACLE数据库里有一张表keywords,主键为ID,外键为PID,一条数据里包含ID,keyword,PID,ismainkey(布尔型)每个ismainkey为真的keyword对应一组(set)PID=ID且ismainkey为假的keyword用的hibernate做的映射,如下<many-to-onename="keywords"class="ss"fetch="select"cascade=&q

Hibernate映射外键

问题描述 我有个cartItem类,其中参照Product的主键,映射文件如下,为什么会出错啊!求指教!publicclassCartItem{privateProductproduct;privateNormalUsernormalUser;privateintcartId;privateintnumber;} publicclassProduct{privateMerchantmerchant;privateintproductId;privateStringname;privateStri

MySQL外键使用详解_Mysql

最近有开始做一个实验室管理系统,因为分了几个表进行存储·所以要维护表间的关联··研究了一下MySQL的外键. (1)只有InnoDB类型的表才可以使用外键,mysql默认是MyISAM,这种类型不支持外键约束 (2)外键的好处:可以使得两张表关联,保证数据的一致性和实现一些级联操作: (3)外键的作用: 保持数据一致性,完整性,主要目的是控制存储在外键表中的数据. 使两张表形成关联,外键只能引用外表中的列的值! (4)建立外键的前提: 两个表必须是InnoDB表类型. 使用在外键关系的域必须为索

mybatis两张表相关联,有索引外键怎么进行删除delete

问题描述 mybatis两张表相关联,有索引外键怎么进行删除delete 在写sql语句的时候怎么写比如student和teacher两张表 解决方案 你是想用sql直接写吗?设置外键的时候可以设置它的级别进行级联删除控制delete decade 如果中项目中,建议还是在service层用事务控制进行处理,先删除student中数据,再删除teacher中数据.

hibernate 外键问题

问题描述 有外键关系的几个表,要做类似这样的查询:select hbiNId from hrBranchInfo where hbi_n_prior=? and hbiVname=? and hbiCState=1;问题可能出现在红色标注的字段.下面是代码,大家看看问题出在了哪. 报错:org.hibernate.hql.ast.QuerySyntaxException: hrBranchInfo is not mapped. [select hbiNId from hrBranchInfo w

hibernate一对多关系中的外外键值无法获取

问题描述 hibernate一对多关系中的外外键值无法获取 !表中的外键cid值没有生成](http://img.ask.csdn.net/upload/201508/05/1438784830_640743.png) 解决方案 你其实可以不用写,可以自动生成相应的映射关系,这些主外键会自动帮你生成,至于怎么自动生成,你可以百度下,到处是的 解决方案二: 你其实可以不用写,可以自动生成相应的映射关系,这些主外键会自动帮你生成,至于怎么自动生成,你可以百度下,到处是的 解决方案三: http://