-
关于hibernate的问题5
是这样,
我做了个映射类该类是这样写的,该映射用到复合主键
public class DriverLoginoffInfo implements java.io.Serializable{
public DriverLoginoffInfo()
{
}
//司机登录退出的复合主键
private DriverLoginoffId driverId;
//退出时间
private Date logoffTime;
//司机信息
private Driverinfo driverInfo = new Driverinfo();
/**
* @return the driverId
*/
public DriverLoginoffId getDriverId() {
return driverId;
}
/**
* @param driverId the driverId to set
*/
public void setDriverId(DriverLoginoffId driverId) {
this.driverId = driverId;
}
/**
* @return the logoffTime
*/
public Date getLogoffTime() {
return logoffTime;
}
/**
* @param logoffTime the logoffTime to set
*/
public void setLogoffTime(Date logoffTime) {
this.logoffTime = logoffTime;
}
/**
* @return the driverInfo
*/
public Driverinfo getDriverInfo() {
return driverInfo;
}
/**
* @param driverInfo the driverInfo to set
*/
public void setDriverInfo(Driverinfo driverInfo) {
this.driverInfo = driverInfo;
}
}
复合主键的类
public class DriverLoginoffId implements java.io.Serializable{
public DriverLoginoffId()
{
}
//农机编号
private String equipId;
//司机工号
private String driverCode;
//登录时间
private Date loginTime;
/**
* @return the equipId
*/
public String getEquipId() {
return equipId;
}
/**
* @param equipId the equipId to set
*/
public void setEquipId(String equipId) {
this.equipId = equipId;
}
/**
* @return the driverCode
*/
public String getDriverCode() {
return driverCode;
}
/**
* @param driverCode the driverCode to set
*/
public void setDriverCode(String driverCode) {
this.driverCode = driverCode;
}
/**
* @return the loginTime
*/
public Date getLoginTime() {
return loginTime;
}
/**
* @param loginTime the loginTime to set
*/
public void setLoginTime(Date loginTime) {
this.loginTime = loginTime;
}
}
而DriverLoginoffInfo类映射为
<hibernate-mapping package="com.navchina.domain.driverworktimestat">
<class name="DriverLoginoffInfo"
table="T_LOGINOFF"
schema="AGRI">
<composite-id name="driverId" class="DriverLoginoffId">
<key-property name="equipId" type="java.lang.String">
<column name="EQUIPCODE" length="10"/>
</key-property>
<key-property name="driverCode" type="java.lang.String">
<column name="DRIVERID" length="10"/>
</key-property>
<key-property name="loginTime" type="java.util.Date">
<column name="LOGINTIME"/>
</key-property>
</composite-id>
<property name="logoffTime" type="java.util.Date">
<column name="LOGOFFTIME"/>
</property>
<many-to-one name="driverInfo"
class="com.navchina.domain.drivermanage.Driverinfo"
update="false"
insert="false"
fetch="select">
<column name="DRIVERID"
length="10"
not-null="true"/>
</many-to-one>
</class>
</hibernate-mapping>
driverInfo是DriverLoginoffInfo的一个关联的表,外键位DRIVERID
driverInfo的类是
import java.util.Date;
import com.navchina.domain.organmanage.OrganInfo;
public class Driverinfo {
// 司机工号
private String driverId;
// 司机名称
private String driverName;
// 单位组织
private String organCode;
private OrganInfo organInfo = new OrganInfo();
// email
private String email;
// 创建人
private String createUser;
// 创建时间
private Date createDate;
// 修改人
private String modUser;
// 修改时间
private Date modDate;
// 是否有效0:失效、1:有效
private String isValid;
public String getDriverId() {
return driverId;
}
public void setDriverId(String driverId) {
this.driverId = driverId;
}
public String getDriverName() {
return driverName;
}
public void setDriverName(String driverName) {
this.driverName = driverName;
}
public OrganInfo getOrganInfo() {
return organInfo;
}
public void setOrganInfo(OrganInfo organInfo) {
this.organInfo = organInfo;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getCreateUser() {
return createUser;
}
public void setCreateUser(String createUser) {
this.createUser = createUser;
}
public Date getCreateDate() {
return createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
public String getModUser() {
return modUser;
}
public void setModUser(String modUser) {
this.modUser = modUser;
}
public Date getModDate() {
return modDate;
}
public void setModDate(Date modDate) {
this.modDate = modDate;
}
public String getIsValid() {
return isValid;
}
public void setIsValid(String isValid) {
this.isValid = isValid;
}
public void setOrganCode(String organCode) {
this.organCode = organCode;
}
public String getOrganCode() {
return organCode;
}
}
Driverinfo 的映射
<hibernate-mapping package="com.navchina.domain.drivermanage">
<class name="Driverinfo"
table="T_DRIVERINFO">
<id name="driverId"
type="java.lang.String">
<column name="DRIVERID"
length="10"/>
<generator class="assigned"/>
</id>
<property name="driverName"
type="java.lang.String">
<column name="DRIVERNAME"
length="20"
not-null="true"/>
</property>
<property name="organCode"
type="java.lang.String">
<column name="ORGANCODE"
length="20"
not-null="true"/>
</property>
<many-to-one name="organInfo"
class="com.navchina.domain.organmanage.OrganInfo"
update="false"
insert="false"
fetch="select">
<column name="ORGANCODE"
length="20"
not-null="true"/>
</many-to-one>
<property name="email"
type="java.lang.String">
<column name="EMAIL"
length="40"
not-null="false"/>
</property>
<property name="createUser"
type="java.lang.String">
<column name="CREATEUSER"
length="10"/>
</property>
<property name="createDate"
type="java.util.Date">
<column name="CREATEDATE"
length="7"/>
</property>
<property name="modUser"
type="java.lang.String">
<column name="MODUSER"
length="10"/>
</property>
<property name="modDate"
type="java.util.Date">
<column name="MODDATE"
length="7"/>
</property>
<property name="isValid"
type="java.lang.String">
<column name="ISVALID"
length="1"
not-null="true"/>
</property>
</class>
</hibernate-mapping>
该类里还有另一个表organInfo的表相关联
但是查的时候organInfo表里的东西查不出来,是什么原因,是不是hibernate不支持嵌套两张表的查询?2012年5月15日 17:11
目前还没有答案
相关推荐
【标题】与【描述】提及的是“Hibernate面试题专栏”,主要涵盖了全面的Hibernate面试题、笔试题以及相关问题,这表明我们将要讨论的是Java领域中著名的对象关系映射框架——Hibernate的相关知识。Hibernate是一个...
在使用Hibernate3进行数据库操作时,中文查询出错是一个常见的问题,这主要涉及到字符编码、数据库配置以及Hibernate的设置等多个方面。以下将详细介绍如何解决这个问题。 首先,我们要明白错误的根源通常在于字符...
这主要是为了解决内存的不稳定性和容量限制问题,并满足业务数据共享、大规模数据检索和数据管理的需求。 在企业级应用中,对象序列化适合少量对象的持久化,但不符合大规模查询和长时间保存的需求。因此,除了对象...
在开发Java Web应用程序时,Spring和...通过以上步骤和策略,大多数Spring与Hibernate的包冲突问题都可以得到解决。在实际开发过程中,应始终关注框架的新版本和官方文档,以便获取最新的兼容性和最佳实践信息。
这个问题在"Hibernate相关jar包括新版本jdk不兼容旧版本的jar.zip"这个压缩包中被提及,表明其中可能包含了针对这种兼容性问题的解决方案。 首先,我们需要理解为什么新版本的JDK可能导致与Hibernate的不兼容性。...
8. **查询优化**:避免N+1查询问题,使用JOIN fetch提前加载关联数据,使用HQL或JPQL替代原生SQL以利用Hibernate的优化能力。 9. **错误处理和日志记录**:理解Hibernate常见的错误和异常,如 detached entity ...
本文将探讨在使用Hibernate时可能遇到的问题,特别是关于数据源的配置。 首先,我们来理解什么是数据源。数据源是Java中用于存储和管理数据库连接的组件,它提供了一种池化连接的方式,可以提高系统资源的利用率,...
"SWTResourceUtil关于hibernate tools出错"这个问题涉及到两个关键组件:SWTResourceUtil和Hibernate Tools。这两个组件在不同的上下文中扮演着重要的角色。 首先,让我们来理解一下SWT(Standard Widget Toolkit)...
二级缓存则是在多个`Session`间共享的,可以提高数据读取效率,但需谨慎使用以防止数据一致性问题。 8. **持久化类和映射文件**:持久化类是与数据库表对应的Java类,通常包含一些特定的注解或XML映射文件...
6. **许可证文件**:关于软件的授权信息,通常遵循Apache License 2.0等开源协议。 总之,"hibernate-release-4.1.4"这个压缩包是Hibernate 4.1.4.Final版本的完整发布,包含了所有必要的库文件、文档和示例,旨在...
**Hibernate 完整PPT教程概述** Hibernate 是一个开源的对象关系映射(ORM)框架,它简化了Java应用程序与数据库之间的交互。这个“Hibernate完整PPT教程”将深入讲解Hibernate的核心概念、工作原理以及如何在实际...
然而,在使用Hibernate时,可能会遇到事务回滚失败的问题,本文将详细介绍该问题的原因和解决方法。 一、问题描述 在使用Hibernate时,可能会遇到以下错误信息: Could not roll back Hibernate transaction; ...
下面是关于 Hibernate 的详细知识点: Hibernate 介绍 Hibernate 是一个开源的持久层框架,它提供了一个抽象层来访问关系数据库。它允许开发者使用面向对象编程语言来访问关系数据库,从而简化了数据库交互的过程...
为了解决这一问题,两个工具——hibernate-extensions和Middlegen-Hibernate应运而生,它们可以自动生成这些代码,提高了开发效率。 **hibernate-extensions** 是Hibernate框架的一个扩展,它提供了一些额外的功能...
《深入剖析Hibernate 3.2源代码...通过深入学习Hibernate 3.2的源代码,开发者不仅可以了解其实现原理,还能在遇到问题时更快定位,进行定制化开发。同时,这也有助于理解ORM框架的工作方式,提升软件设计和开发能力。
【Hibernate更新问题详解】 Hibernate,一个强大的Java对象关系映射(ORM)框架,极大地简化了数据库操作。在处理数据更新时,Hibernate提供了多种方法,但同时也可能会遇到一些常见问题。本篇文章将深入探讨...
同时,作者也邀请用户在遇到问题时到其个人空间留言咨询,显示出开发者愿意分享和解答疑惑的态度,有助于初学者解决在使用过程中可能遇到的问题。 【标签】"3 Hibernate 源代码" 提示我们,这个项目使用了Hibernate...
标题 "Hibernatetools编码格式的问题" 涉及的是在使用Hibernate Tools时遇到的编码相关问题。Hibernate Tools是Hibernate框架的一个扩展,它提供了一系列的辅助工具,如逆向工程(将数据库模式转化为Java实体类)、...
### Hibernate数据库中文乱码问题详解 #### 背景与问题描述 在使用Hibernate框架进行数据库操作时,可能会遇到中文乱码的问题。特别是在使用MySQL作为数据库,并且已将数据库编码设置为`utf-8`的情况下,依然出现...