`

hibernate 之1:N 配置方法

阅读更多

Role.java

package com.hw.dao;

import java.io.Serializable;

import java.util.Set;

public class Role implements Serializable {

private int rid ;

private String name;

private Set<Users> users;

//get set 方法

}

 

Role.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 package="com.hw.dao">

<class name="Role" table="ROLE">

<id name="rid">

<column name="RID"></column>

</id>

<property name="name">

<column name="NAME"></column>

</property>

<set name="users" cascade="all">

<key>

<column name="RID"></column>

</key>

<one-to-many class="Users"/>

</set>

</class>

</hibernate-mapping>   

 

Users.java

import java.io.Serializable;

public class Users implements Serializable{

 

private int id;

private String username;

private String password;

private Role role; //★

//get set 方法

}

 

Users.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 package="com.hw.dao">

<class name="Users" >

<id name="id">

<column name="ID"></column>

</id>

<property name="username">

<column name="USERNAME"></column>

</property>

<property name="password">

<column name="PASSWORD"></column>

</property>

 

<many-to-one name="role" class="Role" >

<column name="RID"></column>

</many-to-one>

</class>

</hibernate-mapping>

测试类

public class test {

public static void main(String[] args) {

Configuration cf = new Configuration().configure();

SessionFactory sf=cf.buildSessionFactory();

Session s=sf.openSession();

/**

s.beginTransaction();

Role role= new Role();

role.setRid(1);

role.setName("admins");

Set<Users> set= new HashSet<Users>();

Users user= new Users();

user.setId(1);

user.setUsername("jack");

user.setPassword("123");

set.add(user);

Users user1= new Users();

user1.setId(2);

user1.setUsername("jacks");

user1.setPassword("456");

set.add(user1);

role.setUsers(set);

s.save(role);

s.getTransaction().commit();*/

/**

String hql="from Role";

Query query=s.createQuery(hql);

List<Role> list=query.list();

for (Role role : list) {

System.out.println(role.getRid()+ " "+role.getName());

Set<Users> set =role.getUsers();

for (Users user : set) {

System.out.println(user.getId()+" "+user.getUsername()+" "+ user.getPassword()+" "+user.getRole().getRid());

}

}*/

String hql="from Users";

Query query= s.createQuery(hql);

List<Users> list=query.list();

for (Users user : list) {

System.out.println(user.getId()+" "+ user.getUsername()+" "+ user.getPassword() +" "+ user.getRole().getRid()+" "+ user.getRole().getName());

}

}

}

分享到:
评论
1 楼 lsf_demo 2011-02-27  
基础性的东西,当复习了

相关推荐

    深入剖析hibernate的n+1问题和缓存问题

    深入理解hibernate的缓存问题和配置,提高使用hibernate的效率

    马士兵hibernate学习笔记(原版)

    2 1+N问题 (典型的面试题) (详见 hibernate_2800_Hibernate_1+N项目) 3 list和iterate不同之处(//主要为了面试 详见hibernate_2900_Hibernate_list_iterate) 4 一级缓存和二级缓存和査询缓存(面试题)(详见...

    spring-hibernate-query-utils:库提供工具来检测N + 1查询并计算使用Spring和Hibernate生成的查询

    Spring Hibernate查询实用程序Spring应用程序中不再有N + 1个查询Spring Hibernate Query Utils:一种在Spring / Hibernate应用程序中检测N + 1查询并计算查询次数的简便方法·目录用夹具测试检测配置使能够错误等级...

    彻底解决hibernate常见难点.zip

    Hibernate处理1-N关系时保存技巧、Hibernate缓存机制、Hibernate批量处理数据、Hibernate三种继承映射策略、hibernate映射体系、Hibernate主键生成策略、持久层DAO设计建议、基于xml文件的bean、使用HibernateAPI在...

    Hibernate 课件_配置文件详解

    我培训用的 Hibernate课件, 个人能力范围内精心整理,图文并茂. 希望能对大家学习 Hibernate 提供帮助. 这是第二篇, 内容如下:Hibernate配置文件;jdbc.fetch_size;...关联关系映射:双向 1-N;继承映射

    Hibernate注释大全收藏

    Hibernate 可以对类的属性或者方法进行注解。属性对应field类别,方法的 getXxx()对应property类别。 定义表 通过 @Table 为实体Bean指定对应数据库表,目录和schema的名字。 @Entity @Table(name="tbl_sky") ...

    hibernate的详细学习笔记

    POJO 1Hibernate ³äøõñ.uQ°n@R!Domain Object (T%ä]° ïxm get/setm) 9ê!POJOnÏnÙ!“Plain Ordinary Java Object”i´ñÂÒxnϼ rJava @ i Wæ!bøõñ7áŧ÷g!ò@ (Value ...

    microservice:在Raspberry Pi 2B服务器群集上测试VERT.X,Hibernate和Hazelcast

    观看-间隔1卷曲-静默-显示错误-包括-最大时间1 要设置开发环境,请下载Gradle并将其扩展到您的主目录,然后在IntelliJ IDEA中进行配置 下载: 运行:echo“ org.gradle.daemon = true” &gt;&gt;〜/ .gradle / gradle....

    Hibernate关系映射

    这是本人参照Hibernate官方文档,将里面的关系映射(1-1、N-1、1-N、N-N)全部做了一遍,包括Junit单元测试,读者只需要修改hibernate.cfg.xml中的资源路径和数据库配置就可以正确运行此程序,祝学习愉快。

    spring3.2+strut2+hibernate4

    -- 此处hibernate 的映射 采用的是.xml 配置同则应设置具体配置文件名(*.hbm.xml)&lt;/value&gt;--&gt; &lt;/list&gt; &lt;/property&gt; &lt;!-- 事务配置管理 --&gt; ...

    解决struts2.1.6+spring+hibernate 中文乱码

    web.xml(仅写出中文处理部分,spring的配置不用改变) &lt;filter-name&gt;encodingFilter &lt;filter-class&gt;org.springframework.web.filter.CharacterEncodingFilter &lt;init-param&gt; &lt;param-name&gt;encoding...

    maven3.0+struts+spring+hibernate

    1.STRUTS2乱码,解决方法是在struts.xml中加入 &lt;constant name="struts.i18n.encoding" value="gb2312" /&gt; 2.验证失败一次后就连续验证失败 (即使密码正确) 这个属于与Spring整合的问题,Spring容器在初始化对象的...

    hibernate初学者jar包

    对于java初学者学习完java基础之后,将深入学习框架,对于hibernate所需要的一些jar包和配置文件进行一个归纳!

    struts2_spring3_hibernate3_1.2

    1.使用struts2+spring3+hibernate3整合实现用户CRUD功能。 2.使用技术 A.Struts2国际化(i18n)、本地化程序。 B.文件上传下载 C.DWR集成 D.Struts2异常处理 3.实现方式 基于配置文件

    Mysql解决数据库N+1查询问题

    简介 在orm框架中,比如hibernate和mybatis都可以设置关联对象,比如user对象关联dept ...dept,是n次,所以是n+1问题,其实叫1+n更为合理一些。 mybatis配置 UserMapper.xml &lt;result column

    jdbc基础和参考

    3.hibernate的配置文件(hibernate.cfg.xml)得存在 4.POJO.hbm.xml文件存在 5.hibernate的jar包以及数据库的驱动包存在 Hibernate的编程: 1.构建Configuration对象读取配置文件 2.读取映射文件 3.构建SessionFactory...

    Java面试宝典2010版

    16. hibernate进行多表查询每个表中各取几个字段,也就是说查询出来的结果集没有一个实体类与之对应如何解决; 17.介绍一下Hibernate的二级缓存 18、Spring 的依赖注入是什么意思? 给一个 Bean 的 message 属性, ...

    轻量级j2ee企业应用实战(第3版) part2

    part1 :http://download.csdn.net/detail/vision_n/4202910 李刚老师的经典之作 《轻量级java ee企业应用实战(第3版)—struts 2+spring 3+hibernate整合开发》 第1章 java ee应用和开发环境 1 1.1 java ee应用...

    轻量级j2ee企业应用实战(第3版) part3

    第1章 java ee应用和开发环境 1 1.1 java ee应用概述 2 1.1.1 java ee应用的分层模型 2 1.1.2 java ee应用的组件 3 1.1.3 java ee应用的结构和优势 4 1.1.4 常用的java ee服务器 4 1.2 轻量级java ee应用相关...

Global site tag (gtag.js) - Google Analytics