博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hibernate一对多双向关联
阅读量:6954 次
发布时间:2019-06-27

本文共 3298 字,大约阅读时间需要 10 分钟。

hot3.png

模型user,address

User中的userid和address中的user_id进行一对多

user sql

CREATE TABLE `NewTable` (`userid`  int(11) NOT NULL AUTO_INCREMENT ,`account`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,`password`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,PRIMARY KEY (`userid`))ENGINE=InnoDBDEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ciAUTO_INCREMENT=40ROW_FORMAT=COMPACT;

address sql

CREATE TABLE `NewTable` (`addressid`  int(11) NOT NULL AUTO_INCREMENT ,`addressinfo`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,`user_id`  int(11) NULL DEFAULT NULL ,PRIMARY KEY (`addressid`),FOREIGN KEY (`user_id`) REFERENCES `user` (`userid`) ON DELETE RESTRICT ON UPDATE RESTRICT,INDEX `userud` (`user_id`) USING BTREE )ENGINE=InnoDBDEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ciAUTO_INCREMENT=77ROW_FORMAT=COMPACT;

user

package dto;import java.util.HashSet;import java.util.Set;public class User {	private int userid;	private String account;	private String password;	private Set
 addresses = new HashSet
(); public Set
 getAddresses() { return addresses; } public void setAddresses(Set
 addresses) { this.addresses = addresses; } public int getUserid() { return userid; } public void setUserid(int userid) { this.userid = userid; } public String getAccount() { return account; } public void setAccount(String account) { this.account = account; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; }}

user.hbm.xml

    
        
            
            
                
            
                
            
                
            
                
            
            
            

address

package dto;public class Address {	private Integer addressid;	private User user;	private String addressinfo;	public Integer getAddressid() {		return addressid;	}	public void setAddressid(Integer addressid) {		this.addressid = addressid;	}	public User getUser() {		return user;	}	public void setUser(User user) {		this.user = user;	}	public String getAddressinfo() {		return addressinfo;	}	public void setAddressinfo(String addressinfo) {		this.addressinfo = addressinfo;	}}

address.hbm.xml

    
        
            
            
                
            
                
            
            

main

package test;import org.hibernate.Session;import org.hibernate.Transaction;import util.HibernateUtil;import dto.Address;import dto.User;public class UserTest {	public static void main(String[] args) {		Session session = HibernateUtil.getSessionFactory().openSession();		Transaction tx = session.beginTransaction();		Address a = new Address();		a.setAddressinfo("america");		Address a2 = new Address();		a2.setAddressinfo("china");		User user = new User();		user.setAccount("jack");		user.setPassword("111111");		user.getAddresses().add(a);		user.getAddresses().add(a2);		session.save(a);		session.save(a2);		session.save(user);		tx.commit();		HibernateUtil.closeSession();	}}

转载于:https://my.oschina.net/enjoymore/blog/469292

你可能感兴趣的文章
Consul入门03 - 注册服务
查看>>
[Centos]necessary tools for newbie
查看>>
前端临床手札——单元测试
查看>>
Java IO : File
查看>>
MySQL Replication
查看>>
JavaScript数组去重总结
查看>>
MVVM_Android-CleanArchitecture
查看>>
iOS开发-协议Protocol&代理delegate
查看>>
【系统架构师修炼之道】(4):绪论——Zachman 框架
查看>>
Foxify v0.10.7 发布,基于 TypeScript 的 Node 框架
查看>>
Python数据结构——双端队列
查看>>
GitHub 项目推荐:用深度学习让你的照片变得美丽 ...
查看>>
另类文件加密 图片当密码给文本加密
查看>>
MySQL数据库如何解决大数据量存储问题
查看>>
CENTOS6.5 yum配置
查看>>
《自顶向下网络设计(第3版)》——1.6 复习题
查看>>
【转】微信小程序给程序员带来的可能是一个赚钱的机遇
查看>>
《Programming Ruby中文版:第2版》终于正式出版了
查看>>
使用Observium来监控你的网络和服务器
查看>>
蚂蚁区块链团队资讯简报20170514
查看>>