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

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

hot3.png

模型user,address

address中有一个字段为user_id与user的userid进行外键关联

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=47ROW_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  Address address;	public Address getAddress() {		return address;	}	public void setAddress(Address address) {		this.address = address;	}	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 user2 = new User();		user2.setAccount("peter");		user2.setPassword("111111");				a.setUser(user2);		a.setUser(user);		a2.setUser(user2);				session.save(user);		session.save(user2);		session.save(a);		session.save(a2);		tx.commit();		HibernateUtil.closeSession();	}}

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

你可能感兴趣的文章
!!a标签和button按钮只允许点击一次,防止重复提交
查看>>
(轉貼) Eclipse + CDT + MinGW 安裝方法 (C/C++) (gcc) (g++) (OS) (Windows)
查看>>
还原数据库
查看>>
作业调度框架 Quartz.NET 2.0 beta 发布
查看>>
mysql性能的检查和调优方法
查看>>
项目管理中的导向性
查看>>
Android WebView 学习
查看>>
(转)从给定的文本中,查找其中最长的重复子字符串的问题
查看>>
HDU 2159
查看>>
spring batch中用到的表
查看>>
资源文件夹res/raw和assets的使用
查看>>
UINode扩展
查看>>
LINUX常用命令
查看>>
百度云盘demo
查看>>
概率论与数理统计习题
查看>>
初学structs2,简单配置
查看>>
Laravel5.0学习--01 入门
查看>>
时间戳解读
查看>>
sbin/hadoop-daemon.sh: line 165: /tmp/hadoop-hxsyl-journalnode.pid: Permission denied
查看>>
@RequestMapping 用法详解之地址映射
查看>>