博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hibernate--多对一单向关联 (重点!!!)
阅读量:6264 次
发布时间:2019-06-22

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

一个用户组包含多个用户, 每个用户属于一个组.

一个人可以有多个车, 每个车属于一个人.

一个人有很多梦想, 一个特定的梦想属于一个人.

错误做法:

person里 有 personid, personname, dreamid

dream里有id, dreamdescr

会出现冗余, 因为是一对多

personid  personname   dreamid

1           zhangsan       1

1           zhangsan       2

 

dreamid    dreamdescr

1       earn money

2              eat a lot

下面做人和组的关系,  一个group有很多user, 一个user只属于一个group, 所以group是 一   user是多

group.java:

package com.bjsxt.hibernate;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.Table;@Entity@Table(name="t_group")public class Group {	private int id;	private String name;	@Id	@GeneratedValue	public int getId() {		return id;	}	public void setId(int id) {		this.id = id;	}	public String getName() {		return name;	}	public void setName(String name) {		this.name = name;	}}

user.java:

里面创建一个group对象, 是多对一的单项

package com.bjsxt.hibernate;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.ManyToOne;import javax.persistence.Table;@Entity@Table(name="t_user")public class User {	private int id;	private String name;	private Group group;  	@ManyToOne		public Group getGroup() {		return group;	}	public void setGroup(Group group) {		this.group = group;	}	@Id	@GeneratedValue	public int getId() {		return id;	}	public void setId(int id) {		this.id = id;	}	public String getName() {		return name;	}	public void setName(String name) {		this.name = name;	}}

hibernate.cfg.xml:

com.mysql.jdbc.Driver
jdbc:mysql://localhost/hibernate
root
linda0213
org.hibernate.dialect.MySQLDialect
1
thread
org.hibernate.cache.NoCacheProvider
true
true

XML方式:

group是一, 不需要改什么:

  

user是多, 需要设置:

  

 test文件:

package com.bjsxt.hibernate;import java.util.Date;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.AnnotationConfiguration;import org.hibernate.tool.hbm2ddl.SchemaExport;import org.junit.AfterClass;import org.junit.BeforeClass;import org.junit.Test;public class HibernateORMappingTest {	private static SessionFactory sessionFactory;		//@BeforeClass	public static void beforeClass() {			sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();	}	//@AfterClass	public static void afterClass() {		sessionFactory.close();	}		@Test	public void testSchemaExport() {		new SchemaExport(new AnnotationConfiguration().configure()).create(false, true);	}		public static void main(String[] args) {		beforeClass();	}}

  

  

 

转载于:https://www.cnblogs.com/wujixing/p/5421054.html

你可能感兴趣的文章
原生js轮盘抽奖实例分析(幸运大转盘抽奖)
查看>>
知否?知否?情人眼里出代码
查看>>
DataBinding数据绑定基本讲解
查看>>
15 分钟无门槛构建服务器性能监控系统
查看>>
【JS第19期】设计模式-简单工厂模式
查看>>
Flask之旅: 快速上手
查看>>
Android图片加载开源库深度推荐,安利Fresco
查看>>
聊聊flink的MemoryPool
查看>>
聊聊flink KeyedStream的KeySelector
查看>>
spring mvc如何计算BEST_MATCHING_PATTERN_ATTRIBUTE
查看>>
swift 消息监听和键值监听(kvo)
查看>>
02@在类的头文件中尽量少引入其他头文件
查看>>
Spring定时任务高级使用篇
查看>>
阿里资深技术专家总结:要怎样努力才可以成为公司主力架构师
查看>>
数学推导+Python实现机器学习算法:线性回归
查看>>
Android AccessibilityService机制源码解析
查看>>
Android基础知识
查看>>
寻找数组主元素(Majority Element))
查看>>
如何将ST05生成的trace导入HANA Studio里并以图形化方式显示出来
查看>>
TiDB 在西山居实时舆情监控系统中的应用
查看>>