Hibernate学习篇04——联合主键(一)
来源:互联网 发布:linux中文输入法有哪些 编辑:程序博客网 时间:2024/06/05 11:07
表结构
drop table user3;create table USER3( USERNAME VARCHAR2(32), PASSWORD VARCHAR2(32), NAME VARCHAR2(32));alter table user3 add primary key (username,name);insert into user3 (username,name,password) values ('zhangsan','zs','111111');insert into user3 (username,name,password) values ('zhangsan','12','222222');insert into user3 (username,name,password) values ('lisi','ls','333333');insert into user3 (username,name,password) values ('lisi','34','444444');commit;
User.hbm.xml
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.masteringhibernate.a041compositeid"><class name="User" lazy="true" table="USER3"><composite-id><key-property name="username" /><key-property name="name" /></composite-id><property name="password" /></class></hibernate-mapping>
User.java
package com.masteringhibernate.a041compositeid;import java.io.Serializable;public class User implements Serializable {private String username;private String password;private String name;//getters and setters}
Test.java
package com.masteringhibernate.a041compositeid;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;public class Test {private static SessionFactory sessionFactory;public static void main(String[] args) {Configuration configuration = new Configuration().configure("com/masteringhibernate/a041compositeid/hibernate.cfg.xml");SessionFactory sessionFactory = configuration.buildSessionFactory();Session session = sessionFactory.openSession();Transaction tx = session.beginTransaction();User userTmp1 = new User();userTmp1.setUsername("zhangsan");userTmp1.setName("zs");User userTmp2 = new User();userTmp2.setUsername("zhangsan");userTmp2.setName("12");User user1 = (User)session.get(User.class,userTmp1);System.out.println("username:"+user1.getUsername()+"\t\tpassword:"+user1.getPassword()+"\t\tname:"+user1.getName());User user2 = (User)session.get(User.class, userTmp2);System.out.println("username:"+user2.getUsername()+"\t\tpassword:"+user2.getPassword()+"\t\tname:"+user2.getName());tx.commit();session.close();}}注意:session的get方法是这样定义的,Object org.hibernate.Session.get(Class arg0, Serializable arg1) throwsHibernateException。所以User必须要实现Serializable接口。
日志:
Hibernate: select user0_.username as username0_0_, user0_.name as name0_0_, user0_.password as password0_0_ from USER3 user0_ where user0_.username=? and user0_.name=?
username:zhangsan password:111111name:zs
Hibernate: select user0_.username as username0_0_, user0_.name as name0_0_, user0_.password as password0_0_ from USER3 user0_ where user0_.username=? and user0_.name=?
username:zhangsan password:222222name:12
0 0
- Hibernate学习篇04——联合主键(一)
- Hibernate学习篇05——联合主键(二)
- hibernate学习:联合主键
- Hibernate的ID联合主键——Hibernate学习笔记04
- Hibernate学习——(七)联合主键映射以及组件映射
- hibernate学习:联合主键2
- Hibernate框架学习(第三讲)---Hibernate联合主键
- hibernate联合主键(转)
- Hibernate学习笔记(三)----ID生成策略、联合主键
- Hibernate学习_010_联合主键映射(Annotation方式)
- Hibernate中联合主键映射学习
- SQL—联合主键
- Hibernate之ID生成策略—联合主键
- Hibernate 中的联合主键
- hibernate 联合主键
- hibernate操作联合主键
- Hibernate 中的联合主键
- hibernate 联合主键 merge
- 圣思园张龙视频
- 为什么删除了
- ClassLoader, JavaAgent, Aspectj Weaving一站式扫盲帖
- Perl eval函数使用实例
- 运行程序中出现的小问题
- Hibernate学习篇04——联合主键(一)
- 对初学MFC朋友们的看法意见
- Activiti入门教程
- ROS学习--OSX安装
- C++设计模式之简单工厂模式
- Laravel简易后台管理Laravel administrator的安装与使用
- SSH框架总结(框架分析+环境搭建+实例源代码下载)
- Ajax学习笔记
- javaScript引入方式