`
Wind_ZhongGang
  • 浏览: 264755 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Hibernate element使用

阅读更多

 

  一.Person

 

 

package com.aaxis.model;

import java.util.List;

/**
 * User: Zhong Gang
 */
public class Person {
    private Integer id;
    private Integer version;
    private String name;

    private List<Role> roles;

    public Person(String name) {
        this.name = name;
    }

    public Person(String name, List<Role> roles) {
        this.name = name;
        this.roles = roles;
    }

    public Person() {
    }
}

 

  二.Role

 

package com.aaxis.model;

/**
 * User: Zhong Gang
 */
public enum Role {
    CTO,
    CEO,
    CFO
}

 

  三.Person.hbm.xml

 

<?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 default-access="field">

    <class name="com.aaxis.model.Person" table="present">
        <id name="id" column="id" type="java.lang.Integer">
            <generator class="native"/>
        </id>
        <version name="version" column="version" type="java.lang.Integer"/>
        <property name="name" column="name" type="java.lang.String"/>

        <bag name="roles" cascade="all" table="roles">
            <key column="present_id"/>
            <element column="role">
                <type name="org.hibernate.type.EnumType">
                    <param name="enumClass">com.aaxis.model.Role</param>
                    <param name="type">12</param>
                </type>
            </element>
        </bag>
    </class>

</hibernate-mapping>

 

  四.测试

 

package com.aaxis;

import com.aaxis.model.Person;
import com.aaxis.model.Role;
import junit.framework.TestCase;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by IntelliJ IDEA.
 * User: Zhong Gang
 * Date: 10/24/11
 * Time: 11:50 AM
 */
public class HibernateCoreTest extends TestCase {

    public void testElement() throws Exception {
        List<Role> roles = new ArrayList<Role>();
        roles.add(Role.CEO);
        roles.add(Role.CFO);

        Person person1 = new Person("present1", roles);
        Person person2 = new Person("present2", roles);

        SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
        Session session = sessionFactory.openSession();
        Transaction transaction = session.beginTransaction();
        session.saveOrUpdate(person1);
        session.saveOrUpdate(person2);

        transaction.commit();
        session.close();
    }
}

 

  数据库表结构

 

  

  最后附上源码以供参考

  • 大小: 29.8 KB
0
2
分享到:
评论

相关推荐

    Hibernate通过Composite-element配置外联表实例 (码)

    标题中的“Hibernate通过Composite-element配置外联表实例”是指在Java持久化框架Hibernate中,使用Composite-element注解或XML配置来处理复杂类型的属性,这些属性通常涉及到一对多或一对一的关系,但它们被存储在...

    Hibernate Validation使用示例及讲解

    本篇将通过实例和讲解来详细介绍 Hibernate Validation 的使用方法和核心概念。 **1. 安装与引入** 在 Maven 项目中,可以通过添加以下依赖来引入 Hibernate Validation: ```xml &lt;groupId&gt;javax.validation ...

    hibernate的jar包

    3. **实体类与表映射**:Hibernate使用注解或XML文件(hbm.xml)将Java类映射到数据库表,如@Table、@Column等注解,定义了类与表、属性与列的关系。 4. **Session接口**:在Hibernate中,Session是与数据库交互的...

    hibernate验证框架学习

    本文档将详细介绍 **Hibernate Validator 5.4.2.Final** 的使用方法和高级特性。 ##### 1.1 项目搭建 在开始使用 **Hibernate Validator** 之前,首先需要完成项目的设置。这包括添加必要的依赖库到构建工具中,...

    Hibernate中文API大全

    你可以使用&lt;composite-element&gt;标签替代&lt;element&gt;标签来定义你的组件集合。 ; &lt;composite-element class="eg.Name"&gt; &lt;!-- class attribute required --&gt; ; &lt;/composite-element&gt; 注意,如果你...

    hibernate array 数组映射

    本篇将详细探讨`hibernate array 数组映射`的相关知识点,包括其原理、配置、使用场景以及最佳实践。 ### Hibernate概述 Hibernate 是一个开源的Java ORM(Object-Relational Mapping)框架,它通过提供一种对象-...

    使用dom4j生成和读取hibernate.cfg.xml

    本文将深入探讨如何使用DOM4J库来生成和读取`hibernate.cfg.xml`,这是一个强大的Java XML处理库。 首先,让我们了解DOM4J的基本概念。DOM4J是一个开源的Java库,它提供了一套灵活的API来处理XML文档,包括读取、...

    Jdom生成hibernate.cfg.xml和读取其中内容

    Element rootElement = new Element("hibernate-configuration"); Document document = new Document(rootElement); // 添加子元素 Element sessionFactory = new Element("session-factory"); rootElement....

    Hibernate使用 Map实现多对多映射

    以下是关于Hibernate使用Map实现多对多映射的具体知识点: 1. **数据库结构**: - `team2`表存储团队信息,包含字段`id`和`name`。 - `member2`表存储成员信息,包含字段`id`、`name`和`age`。 - `memberAtTeams...

    hibernate-validator-5.0.0.CR2-dist.zip

    在`my--hibernate-validator`这个子目录中,可能包含了示例、文档或其他相关资源,这些可以帮助开发者更好地理解和使用Hibernate Validator。 总的来说,Hibernate Validator为Java开发者提供了一套强大且灵活的...

    hibernate-validator-4.0.1.GA-dist

    Hibernate Validator,作为Java世界中的一款强大且广泛使用的验证框架,极大地简化了应用中的数据验证过程。本文将深入探讨 Hibernate Validator 4.0.1.GA 版本,解析其核心功能与特性,以及在实际开发中的应用场景...

    Hibernate_容器映射技术笔记

    在Hibernate中,使用`&lt;map&gt;`标签来映射,`&lt;index&gt;`定义键的列,`&lt;element&gt;`定义值的列。 延迟加载(Lazy Loading)是Hibernate的一个重要特性。它意味着关联的对象或集合不会在实体加载时立即加载,而是在实际访问...

    springmvc 使用hibernate-validator校验包

    本文将深入探讨如何在Spring MVC项目中集成并使用Hibernate Validator来实现高效、强大的数据校验功能。 一、 Hibernate Validator简介 Hibernate Validator是Hibernate组织开发的一个开源项目,它是JSR 380(Java...

    hibernate集合的映射

    Array集合映射在Hibernate中较少使用,因为它没有索引,且在数据库中通常无法直接映射。但是,如果业务场景确实需要,可以通过`&lt;array&gt;`元素进行配置,将数组元素与数据库的独立列对应起来。 四、Map集合映射 Map...

    hibernate-3.2.rar

    3. **实体类与映射文件**:每个数据库表对应一个Java实体类,通过`hibernate-mapping`标签下的`class`元素定义,使用`id`表示主键,`property`或`element`表示其他字段。此外,还可以使用注解方式进行映射,如`@...

    hibernate-mapping

    Hibernate Mapping是Java领域中一种重要的对象关系映射(ORM)技术,它使得开发者可以使用面向对象的方式来操作数据库,极大地简化了数据存取的操作。在Hibernate中,mapping文件是连接Java类和数据库表的关键,它...

    Hibernate中List信息的配置

    Map在Hibernate中的映射较为复杂,涉及`&lt;map&gt;`、`&lt;key&gt;`、`&lt;index&gt;`和`&lt;element&gt;`等多个标签。`&lt;key&gt;`标签用于定义Map的主键,`&lt;index&gt;`和`&lt;element&gt;`则分别用于定义Map的键和值。Map映射在处理具有复杂关联的数据...

    Many-To-Many_Element.rar_hibernate 多对多

    本教程主要讲解如何使用Hibernate来处理多对多的关联映射,尤其是基于HashMap的实现方式。 首先,让我们理解多对多关系的基本概念。在数据库中,多对多关系意味着一个实体可以与多个其他实体相关联,反之亦然。为了...

    hibernate 延迟加载深入剖析

    ### Hibernate延迟加载深入剖析 #### 一、概述 在现代软件开发中,特别是与数据库交互的应用场景下,Hibernate作为一款流行的Java持久层框架,提供了多种高效处理数据的技术。其中,延迟加载(Lazy Loading)是一...

Global site tag (gtag.js) - Google Analytics