hibernate映射之单向多对一-程序员宅基地

数据模型:

person表

room表

 

实体对象模型:

Person private static final long serialVersionUID = 1L;
    private int pid;
    private String pname;
    private Room room;

 

 Room private static final long serialVersionUID = 1L;
    private int rid;
    private String rname;

 

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.skyedu.bean">
    <class name="Person" table="person">
       <id name="pid" column="pid" >
           <generator class="native"></generator>
       </id>
       <property name="pname" column="pname" length="32"></property>
       <many-to-one name="room" column="rid" class="Room" cascade="save-update">
       </many-to-one>
    </class>
</hibernate-mapping>

 

<?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.skyedu.bean">
    <class name="Room" table="room">
       <id name="rid" column="rid" >
             <generator class="native"></generator>
       </id>
       <property name="rname" column="rname" length="30"></property>
    </class>
</hibernate-mapping> 

 

测试代码:

    @Test
    public void testSave(){
        Session session = HibernateUtil.getSession();
        Transaction transaction = session.beginTransaction();
        try{
            Room room = new Room();
            room.setRname("水帘洞");
            
            Person person1 = new Person();
            person1.setPname("猴子1");
            person1.setRoom(room);
            
            session.save(person1);
            
            transaction.commit();    
        }catch(Exception e){
            transaction.rollback();
        }finally{
            HibernateUtil.closeSession(session);
        }
    }
    
    @Test
    public void testFind(){
        Session session = HibernateUtil.getSession();
        Person person = (Person) session.get(Person.class, 1);
        System.out.println("psersonName:"+person.getPname());
        System.out.println("roomName:"+person.getRoom().getRname());
        
        
    }
    
    

 

转载于:https://www.cnblogs.com/weidan/archive/2013/02/04/2891956.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30768661/article/details/96468098

智能推荐

BIN 转化为 S19 格式及 S19 格式解析_bin文件转s19文件-程序员宅基地

文章浏览阅读6.4k次。bin2srec.c/* BIN2SREC - Convert binary to Motorola S-Record file Copyright (C) 1998-2012 Anthony Goffart This program is free software: you can redistribute it and/or modify it under the term_bin文件转s19文件

无边工作,无际遐想-程序员宅基地

文章浏览阅读63次。又是一个胡乱涂鸦,最近很长一段时间我就像临产孕妇样,挣扎在“生产”边缘,每次将手放在键盘上,努力憋出一丝一缕。却就是伸不出个头来。还好,我比孕妇自由,可以停下来休息休息。有句话说的好:生活就是在指尖中溜走。忘了是谁说出来的,不过,放在这形容我们IT民工身上再恰当不过。我,就是在屏幕前览尽世间百态,冷暖情怀。在指尖上赢取生活薪水,展望美好未来。不是我颓废,也非自我解嘲。...

从一个页面请求开始(一)-程序员宅基地

文章浏览阅读228次。在本地浏览器上输入www.hello.com时,简单的实现流程是:在客户端上,检查本地的hosts文件中是否有主机名和ip对应,有对应ip,则用HTTP协议封装数据请求,添加应用层首部,添加tcp首部,添加ip首部,添加mac地址后从本地出去,到对应的WEB服务器上,没有对应的ip,则查找resolv.conf文件上DNS的位置,DNS不在同一网络内,则请求需要通过..._location 以某个请求开始

C++回声服务器_1-简单版本-程序员宅基地

文章浏览阅读82次。C++网络编程离不开socket编程。我们现在使用socket编写简单的回声服务器。流程这里所说的流程包括两部分:socket函数调用流程。服务器与客户端交互流程。socket函数调用流程服务器与客户端交互流程回声服务器主要功能:服务器将接收到来自客户端的数据传回客户端。服务器的功能:服务器在同一时刻只能与一个客..._回声客户端多次调用write会使数据一次性到达服务器

CICS入门-程序员宅基地

文章浏览阅读294次。最近在学习CICS的时候,没人指点,走了不少弯路。在大机和CICS中,很多概念和x86和linux、windows等通用平台以及J2EE架构中的一些概念不尽相同。这里列举出一些对初学者特别重要的概念,并且以通用平台的概念作为类比,希望对新了解大机和CICS的朋友有些帮助。预备首先说说CICS和Mainframe(大机)的关系。通常对CICS的定义,都是说:CICS是运行在..._cics学习

python2 python3选择哪个_Anaconda使用总结暨部署python2和python3共存-程序员宅基地

文章浏览阅读180次。Anaconda概述Anaconda是一个用于科学计算的Python发行版,支持 Linux, Mac, Windows系统,提供了包管理与环境管理的功能,可以很方便地解决多版本python并存、切换以及各种第三方包安装问题。Anaconda利用工具/命令conda来进行package和environment的管理,并且已经包含了Python和相关的配套工具。这里先解释下conda、anacond..._anaconda2和3哪个好

随便推点

python爬的csv文件在哪里_Python爬虫之踩坑记录--csv文件新增列-程序员宅基地

文章浏览阅读647次。起因:爬取拉勾网职位信息模块的技术栈,实现把技术栈爬回之前的csv文件(以新增列的方式)具体实现过程如下:使用Pandas的read_csv方法读取csv文件里面的PositionId,访问对应的网址设置headers、cookies、time.sleep、try-except,防止反爬机制利用BeautifulSoup方法爬取对应源码并用html.parser实现转化成Html5格式使用正则表达..._python爬虫中一般csv文件自动创建的在那里

h5课件制作_H5课件——H5页面在教学上的妙用-程序员宅基地

文章浏览阅读1.6k次。传统的课堂教学模式往往形成了老师单向灌输、学生被动接受的局面,我们不难看出传统教学模式的缺陷是非常明显的,其中关键的是作为认知主体的学生在整个教学过程中都始终处于被动地接受知识的地位,学生学习的主动性被忽视,甚至被压抑。很显然,这与现代社会对人才培养的要求是不相符合的,这种模式担负不了培养高素质的创造性人才的重担,因此,改变传统教学模式,打造适应新课改要求的高效课堂模式势在必行。这个时候有人就会说..._利用h5协助做课件

r语言导出文件为xlxs_R语言学习——R读取txt、csv、xls和xlsx格式文件-程序员宅基地

文章浏览阅读2.8k次。最近项目中运用到了R读取文件数据,所以把相关好用的、经过验证的方法总结了一下,有效避免下次入坑。1. R读取txt文件使用R读取txt文件直接使用read.table()方法进行读取即可,不需要加载额外的包。read.table("/home/slave/test.txt",header=T,na.strings = c("NA"))1注意,此处的na.strings = c("NA") 的意思是..._r语言输出txt文件

浙江义乌机场开通义乌-首尔国际货机航线-程序员宅基地

文章浏览阅读213次。义乌机场开通义乌-首尔国际货机航线 义乌提供义乌机场开通义乌-首尔国际货机航线 义乌提供中新网义乌1月22日电 (记者 奚金燕)1月22日早晨7时30分,随着一架载有6吨货物从首尔飞往义乌的货机缓缓驶入机坪,标志着浙江义乌机场货机航线正式开通。地处浙江省中部的义乌,坐拥全球最大的小商品市场,有180万种商品销往全球200个国家和地区。近年来,义乌正致力于“买全球、卖全球”,加快打造世界“小商品之都..._近期坐飞机去义乌要隔离吗?

ROS全覆盖规划算法逻辑整理笔记_ros2覆盖规划-程序员宅基地

文章浏览阅读1.5w次,点赞29次,收藏235次。ROS提供了计算生成全覆盖路径的代码,在经历了一段时间的代码研究与优化后,决定将部分思路整理成笔记,方便以后查看。_ros2覆盖规划

SpringBoot中拦截器的基本使用_handlerinterceptor内使用bean-程序员宅基地

文章浏览阅读712次。【拦截器的介绍】拦截器是类似于Servlet的Filter,对一次请求进行拦截,然后可以处理一些校验之类的工作,作用还是挺大的。【SpringBoot中拦截器的使用】在SpringBoot中使用拦截器非常简单。总的来讲就只有以下两个步骤:1.让一个Bean继承HandlerInterceptorAdapter类,里面有两个常用的方法preHandle, postHandle。一般将它们两个..._handlerinterceptor内使用bean

推荐文章

热门文章

相关标签