Hibernate学习篇05——联合主键(二)
来源:互联网 发布:记账app 知乎 编辑:程序博客网 时间:2024/06/06 00:03
这是第二种方式,采用联合主键类来实现,第一种方式链接:联合主键方式一。
表结构
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.a042compositeid"><class name="User" lazy="true" table="USER3"><composite-id name="userId" class="UserId"><key-property name="username" /><key-property name="name" /></composite-id><property name="password" /></class></hibernate-mapping>User.java
package com.masteringhibernate.a042compositeid;public class User {private UserId userId;private String password;public UserId getUserId() {return userId;}public void setUserId(UserId userId) {this.userId = userId;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}UserId.java
package com.masteringhibernate.a042compositeid;import java.io.Serializable;public class UserId implements Serializable {private String username;private String name;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getName() {return name;}public void setName(String name) {this.name = name;}}Test.java
package com.masteringhibernate.a042compositeid;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/a042compositeid/hibernate.cfg.xml");SessionFactory sessionFactory = configuration.buildSessionFactory();Session session = sessionFactory.openSession();Transaction tx = session.beginTransaction();UserId userIdTmp1 = new UserId();userIdTmp1.setUsername("zhangsan");userIdTmp1.setName("zs");UserId userIdTmp2 = new UserId();userIdTmp2.setUsername("zhangsan");userIdTmp2.setName("12");User user1 = (User)session.get(User.class,userIdTmp1);System.out.println("username:"+user1.getUserId().getUsername()+"\t\tname:"+user1.getUserId().getName()+"\t\tpassword:"+user1.getPassword());User user2 = (User)session.get(User.class, userIdTmp2);System.out.println("username:"+user2.getUserId().getUsername()+"\t\tname:"+user2.getUserId().getName()+"\t\tpassword:"+user2.getPassword());tx.commit();session.close();}}日志:
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:zhangsanname:zspassword:111111Hibernate: 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:zhangsanname:12password:222222
0 0
- Hibernate学习篇05——联合主键(二)
- Hibernate学习篇04——联合主键(一)
- hibernate学习:联合主键
- Hibernate学习——(七)联合主键映射以及组件映射
- hibernate学习:联合主键2
- Hibernate框架学习(第三讲)---Hibernate联合主键
- Hibernate的ID联合主键——Hibernate学习笔记04
- hibernate联合主键(转)
- Hibernate学习笔记(三)----ID生成策略、联合主键
- Hibernate学习_010_联合主键映射(Annotation方式)
- Hibernate中联合主键映射学习
- SQL—联合主键
- Hibernate之ID生成策略—联合主键
- Hibernate 中的联合主键
- hibernate 联合主键
- hibernate操作联合主键
- Hibernate 中的联合主键
- hibernate 联合主键 merge
- 面试
- 关于React使用中遇到的坑
- 个人进阶之路——安卓蓝牙模块(4)
- H-Index II
- unity——角色控制以及网络组件
- Hibernate学习篇05——联合主键(二)
- thinkphp3.2.3开发商城实战(一)
- 栈与队列
- 深入探讨 Java 类加载器
- *LeetCode 90
- 错误记录:Resource ID #0x7f040006 type #0x12 is not valid
- 网易公开课《Linux内核分析》学习心得-mykernel实验的实践和分析
- 一对多 pc上运行android客户端
- [DevExpress]ASP.NET動態設定XtraReport報表參數的方式 5715 ASP.NET 檢舉文章 在ASP.NET中要如何動態設定XtraReport報表參數,或