`
lspgdut
  • 浏览: 199801 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

Hibernate 单向多对一

 
阅读更多

package model;
import java.io.Serializable;
//产品分类表
public class Category implements Serializable {

 private static final long serialVersionUID = 1L;
 
 private Integer id;
 private String name;
    private String description;
   
    public Category(){
     
    }

 public Integer getId() {
  return id;
 }

 public void setId(Integer id) {
  this.id = id;
 }

 public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }

 public String getDescription() {
  return description;
 }

 public void setDescription(String description) {
  this.description = description;
 }
   
   
}
Category.hbm.xml如下:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
 
 <class name="model.Category" table="category">
  <id name="id" type="java.lang.Integer">
   <column name="ID" precision="8"></column>
   <generator class="increment"></generator>
  </id>
  <property name="name" column="name" length="40" type="java.lang.String"></property>
  <property name="description" column="description" length="200" type="java.lang.String"></property>
  
 </class>
</hibernate-mapping>

然后是产品:

package model;

import java.io.Serializable;
//产品表
public class Product implements Serializable {

 private static final long serialVersionUID = 1L;
 
 private Integer id;
 private String name;
 private Double price;
 private String description;
 private Category category;
 
 public Product(){
  
 }

 public Integer getId() {
  return id;
 }

 public void setId(Integer id) {
  this.id = id;
 }

 public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }

 public Double getPrice() {
  return price;
 }

 public void setPrice(Double price) {
  this.price = price;
 }

 public String getDescription() {
  return description;
 }

 public void setDescription(String description) {
  this.description = description;
 }

 public Category getCategory() {
  return category;
 }

 public void setCategory(Category category) {
  this.category = category;
 }
 
 

}
然后是:Product.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
 
 <class name="model.Product" table="product" >
  <id name="id" type="java.lang.Integer">
   <column name="ID" precision="8"></column>
   <generator class="increment"></generator>
  </id>
  <property name="name" column="name" length="200" type="java.lang.String"></property>
  <property name="price" column="price" precision="8" type="java.lang.Double"></property>
  <property name="description" column="description" length="2000" type="java.lang.String"></property>
  <!-- lazy="false" 表示我要立即加载 -->
  <many-to-one name="category" class="model.Category" lazy="false">
    <column name="CATEGORY_ID" precision="8" scale="0"></column>
  </many-to-one>
 </class>
</hibernate-mapping>

hibernate.cfg.xml的配置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
 <session-factory>
  <property name="connection.url">jdbc:oracle:thin:@localhost:1521:ORCL</property>
  <property name="connection.username">scott</property>
  <property name="connection.password">123456</property>
  <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
  <property name="dialect">org.hibernate.dialect.Oracle10gDialect</property>
  <property name="current_session_context_class">thread</property>
  <property name="show_sql">true</property>
        <property name="hbm2ddl.auto">update</property>
        <property name="format_sql">true</property>
        <!-- c3p0连接池的配置 -->
        <property name="connection_provider_class">
         org.hibernate.connection.C3P0ConnectionProvider
        </property>
        <property name="hibernate.c3p0.min_size">5</property>
        <property name="hibernate.c3p0.max_size">10</property>
  <property name="hibernate.c3p0.max_statements">50</property>
  <property name="hibernate.c3p0.timeout">3600</property>
  <property name="hibernate.c3p0.idle_test_period">120</property>
  <property name="hibernate.c3p0.acquire_increment">2</property>
        <mapping resource="model/Category.hbm.xml"/> 
        <mapping resource="model/Product.hbm.xml"/>  
 </session-factory>
</hibernate-configuration>

 

分享到:
评论

相关推荐

    Hibernate学习:单向多对一关联 工程

    本项目“Hibernate学习:单向多对一关联 工程”专注于讲解Hibernate中的单向多对一关联映射,这是数据库设计中常见的关系类型,尤其在处理具有层次结构的数据时。 单向多对一关联指的是在一个实体类中有一个引用,...

    hibernate 单向多对多关联映射练习

    以上就是关于Hibernate单向多对多关联映射的基本介绍和实践。实际应用中,还需考虑性能优化、事务管理、懒加载等问题。通过不断的练习和学习,你可以更熟练地掌握这一重要功能,提升项目开发的效率和质量。

    hibernate单向多对多映射(XML版)

    本主题聚焦于"hibernate单向多对多映射",特别是在XML配置文件中的实现。在这个过程中,我们将探讨多对多关系的原理,以及如何在Hibernate中通过XML配置文件来定义这种关系。 首先,我们需要理解多对多关系的概念。...

    hibernate单向多对多映射(注解版)

    以下是对"hibernate单向多对多映射(注解版)"的详细解释。 首先,我们需要理解多对多关系的概念。在数据库设计中,多对多关系意味着一个实体可以与多个其他实体相关联,反之亦然。例如,学生和课程之间的关系就是多...

    hibernate多对一单向关联关系实现源码

    以上就是关于Hibernate中实现多对一单向关联关系的基本知识,包括如何在实体类中定义关联、如何进行数据库操作以及如何查询关联对象。这个源代码示例应该提供了更具体的实现细节,你可以通过查看和运行它来深入理解...

    hibernate单向一对多关联映射(注解版)

    在Java的持久化框架Hibernate中,单向一对多关联映射是常见的数据关系处理方式,尤其是在处理数据库中的实体类和表之间的关系时。本主题主要关注如何使用注解来实现这种映射。Hibernate通过注解使得对象关系映射...

    Hibernate 一对一外键单向关联

    本篇文章将深入探讨Hibernate中的一对一外键单向关联。 首先,一对一外键关联指的是一个实体通过外键直接引用另一个实体的主键。在单向关联中,只有其中一个实体知道另一个实体的存在,而另一个实体则无感知。这种...

    Hibernate单向一对多关联映射(XML版)

    在本主题"Hibernate单向一对多关联映射(XML版)"中,我们将深入探讨如何使用XML配置来实现数据库中一个实体类对应多个实体类的关联关系。 在Hibernate中,一对多关联是一种常见的关系映射类型,它反映了数据库中的...

    Hibernate基于外键的一对多单向关联

    “Hibernate基于外键的一对多单向关联”这个标题指的是在Java持久化框架Hibernate中,如何通过外键实现一个实体类(如订单)与另一个实体类(如商品)之间的一对多关系,并且这种关联是单向的,即从订单端可以访问到...

    Hibernate 系列教程 单向一对多

    本教程聚焦于Hibernate中的单向一对多关联映射,这是一个常见的实体关系模型,广泛应用于各种业务场景。 在数据库设计中,一对多关系意味着一个父表记录可以与多个子表记录相关联。例如,一个学生可以有多个课程,...

    hibernate5_ManyToMany多对多单向维护

    在处理多对多关联关系时,Hibernate提供了一种方便的方式来实现这种复杂的数据库关系。本文将详细讨论在Hibernate 5中如何实现ManyToMany单向维护的多对多关联。 首先,我们要理解多对多关联的基本概念。在数据库...

    hibernate 多对多全注解(单向关联、双向关联)

    hibernate关联映射注解多对多单向关联、

    Hibernate的单向多对一

    **标题:“Hibernate的单向多对一”** 在Java编程中,Hibernate是一个强大的对象关系映射(ORM)框架,它简化了数据库与Java对象之间的交互。在数据模型设计中,多对一是常见的关联关系,其中“多”的一方关联“一...

    hibernate一对一之唯一外键关联(单向关联)

    对于单向一对一关联,通常是在一个实体类中定义另一个实体类的引用,而另一个实体类并不知道这个引用。下面是一个简单的例子: ```java // 用户实体类(User) @Entity public class User { @Id @GeneratedValue...

    hibernate主键实现一对一单向关联关系源码

    -- 单向一对一关联Address --&gt; &lt;!-- Address.hbm.xml --&gt; &lt;param name="property"&gt;person&lt;/param&gt; &lt;!-- 引用Person的主键 --&gt; ``` 3. **源码分析** 在`Person`类中,`Address`对象的...

    Hibernate关于注解的一对多,多对多,一对一

    1. **@OneToOne** 注解:在单向一对一关系中,此注解用在主实体的属性上。而在双向一对一关系中,双方都需要`@OneToOne`,并使用`mappedBy`属性指定对方。 2. **@PrimaryKeyJoinColumn**:如果关联的两个实体使用...

    Hibernate基于连接表的一对多单向关联

    在上述代码中,我们使用了注解`@ManyToOne`和`@JoinColumn`来声明`Address`类中的`person`字段是一个多对一的关联,并指定了外键列的名称。 3. 数据库表结构:`personAdd.sql`可能包含了创建`Person`和`Address`表...

    hibernate多对多单向关联

    多对多单向关联 &lt;br&gt;需要注意映射规则: &lt;set name="users" table="t_user_role"&gt;&lt;br&gt; &lt;key column="roleid"/&gt;&lt;br&gt; &lt;many-to-many class="com.bjsxt.hibernate.User" column="userid"/&gt; &lt;/set&gt;

    Hibernate单向关联代码示例

    单向关联分为单向一对一关联和单向一对多关联。这里我们先讨论单向一对多关联,它是最常见的关联类型之一,一个实体可以拥有多个其他实体实例。例如,一个部门可以有多个员工,但员工并不知道属于哪个部门,这就是...

    hibernate核心,一对多,多对多映射讲解,看了就完全搞明白了

    1. 配置并创建单向多对一关联,如“区县”和“街道”的关系。 2. 创建双向一对多关联,如“街道”和“区县”的双向关系。 3. 实现多对多关联,例如OA系统中项目和人员的对应关系管理。 在实体类中,我们可以使用...

Global site tag (gtag.js) - Google Analytics