其实单实体的一对多和多对一和2个实体的用法是一样的,现在以user为例:
java代码:
package com.test.bean;
import java.util.Set;
public class User
{
private Integer id;
private String firstname;
private String lastname;
private Integer parentID;
private int age;
private Set childrens;
private User user;
public Set getChildrens() {
return childrens;
}
public void setChildrens(Set childrens) {
this.childrens = childrens;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public Integer getId()
{
return id;
}
public void setId(Integer id)
{
this.id = id;
}
public String getFirstname()
{
return firstname;
}
public void setFirstname(String firstname)
{
this.firstname = firstname;
}
public String getLastname()
{
return lastname;
}
public void setLastname(String lastname)
{
this.lastname = lastname;
}
public int getAge()
{
return age;
}
public void setAge(int age)
{
this.age = age;
}
public Integer getParentID() {
return parentID;
}
public void setParentID(Integer parentID) {
this.parentID = parentID;
}
}
对应的hbm文件:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.test.bean.User" table="users">
<id name="id" type="java.lang.Integer" column="id">
<generator class="increment"></generator>
</id>
<property name="firstname" type="string" column="firstname"
length="50">
</property>
<property name="lastname" type="string" column="lastname"
length="50">
</property>
<property name="age" type="java.lang.Integer" column="age"></property>
<set name="childrens" inverse="true"
lazy="false" where=" age=4">
<key>
<column name="parentID" />
</key>
<one-to-many class="com.test.bean.User" />
</set>
<many-to-one name="user" column="parentID" class="com.test.bean.User"></many-to-one>
</class>
</hibernate-mapping>
分享到:
相关推荐
HQL(Hibernate Query Language)是Hibernate提供的面向对象的查询语言,它支持多种连接查询类型,如内连接、迫切内连接、隐式内连接、左外连接、迫切左外连接、右外连接和交叉连接,提供了与SQL类似的查询功能。...
级联操作虽然方便,但也可能带来性能问题,因为它们可能会触发额外的数据库查询或更新。因此,应根据实际需求谨慎选择级联类型,避免不必要的数据库操作。另外,对于那些不需要立即更新数据库的场景,可以考虑使用...
3. **配置级联**:在Hibernate的映射文件(XML或注解)中,可以指定实体之间的关联是否启用级联,例如在`@ManyToOne`、`@OneToOne`、`@OneToMany`和`@ManyToMany`等关联注解中设置`cascade`属性。 4. **级联查询...
在 Hibernate 中,级联(Cascade)是一种非常有用的功能,它能够帮助开发者在处理实体之间的关联时自动执行一系列相关的操作。通过级联,当对一个实体执行某些操作时,这些操作也会自动地应用到与之关联的其他实体上...
级联关系在Hibernate中是指当一个实体发生某种操作(如保存、更新、删除)时,是否会影响到与之相关联的其他实体。通过配置级联关系,我们可以控制这些关联实体的行为。 1. **一对多(OneToMany)**:在数据库中,...
级联查询用于获取一个实体的相关实体信息,而分页查询则用于提高查询效率和用户体验,避免一次性加载过多数据导致性能下降。下面将详细探讨这两个概念以及如何在Java中实现它们。 首先,级联查询在Java中通常是通过...
在级联菜单中,可能涉及到多级分类的数据,如省份、城市、区县等,Hibernate可以通过实体类与数据库表进行映射,使得开发者无需编写大量的SQL语句,即可实现对数据库的增删查改操作。例如,当用户选择一个省份时,...
在这个"struts2 hibernate 实现无限级联 树形分类"项目中,主要目标是创建一个能够展示无限级联的树形分类结构。这种结构通常用于组织层次化的数据,如产品类别、部门结构或者权限角色等。无限级联意味着这个树可以...
当调用`session.delete(student)`或`session.delete(course)`时,如果配置了级联删除,Hibernate会检查关联表,找出所有与被删除实体关联的记录,并一并删除。请注意,级联删除可能引起数据丢失,因此在使用时需谨慎...
2. **数据库配置**:配置 Hibernate 映射文件(.hbm.xml)和实体类,建立部门和员工之间的关联关系,比如一对一或一对多关系。 3. **Spring 配置**:在 Spring 配置文件中,声明 Hibernate 的 SessionFactory 和...
实体Bean之间的级联关系是Java持久化框架如Hibernate或JPA中的一个重要概念,它涉及到对象关系映射(ORM)中的数据操作同步性。在数据库中,实体Bean通常代表表中的行,而实体间的级联关系则反映了表之间的关联。...
在探讨Hibernate框架中的级联操作(cascade)与控制权反转(inverse)之前,我们需要先对Hibernate有一个基本的理解。Hibernate是一个开放源代码的对象关系映射(ORM)框架,它为Java应用提供了一种将对象模型映射到...
- 当我们通过Hibernate的Session对象保存或更新父类实体时,配置了级联操作的子类实体也会被相应地处理。 - 删除操作同样如此,如果设置了`CascadeType.REMOVE`,删除父实体时,其关联的子实体会被一同删除。 4. ...
### Hibernate实体类注解详解 Hibernate作为Java领域中流行的ORM(对象关系映射)框架,提供了丰富的注解来简化实体类与数据库表之间的映射。本文将深入解析一系列关键注解,帮助理解Hibernate如何实现这一过程。 ...
而级联(Cascading)则是Hibernate中处理关联对象的一种策略,它定义了当一个实体被保存、更新或删除时,与之关联的其他实体应该如何处理。 【描述】: Hibernate中的范型主要体现在SessionFactory、Session、...
而对于HQL(Hibernate Query Language),它是Hibernate提供的面向对象的查询语言,可以方便地进行级联操作。例如,更新t_card的同时更新t_person: ```java String hql = "update TCard c set c.status = 'active'...
在Java的持久化框架Hibernate中,级联操作(Cascade)和反转(Inverse)是两个重要的概念,它们主要用于管理对象关系模型中的关联关系。在一对多的关系中,这些特性可以帮助简化数据操作,提高代码的可读性和维护性...
在Java持久化框架Hibernate中,一对多(One-to-Many)、多对一(Many-to-One)、级联(Cascading)、加载(Loading)和反转(Inversing)是关系映射的重要概念,它们对于理解如何在数据库和对象之间有效地管理关联至...
总之,Java通过JDBC和ORM框架如Hibernate可以方便地实现两个表的级联查询,结合JSP文件,可以构建出完整的Web应用程序来展示和处理这些查询结果。在实际开发中,应根据项目需求和团队技术栈选择合适的方法。
级联操作控制了关联对象的生命周期,而反向属性则决定了哪个实体负责管理关联。理解并合理使用这两个属性可以提高代码的可维护性和数据的准确性。在实际应用中,应根据业务需求选择合适的级联类型和反向属性设置。