博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
5.6.4 映射集合属性:Set集合属性
阅读量:2445 次
发布时间:2019-05-10

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

我们先将test库里的表删除:

然后新建一个web工程,并编写代码:

Person.java :

public class Person {		private int id;	private String name;	private int age;	private Set
schools=new HashSet
(); 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; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Set
getSchools() { return schools; } public void setSchools(Set
schools) { this.schools = schools; } }
Person.hbm.xml :

Set集合属性的映射与List有点不同,因为Set是无序的,不可重复的集合,因此
<set.../>元素无须使用<list-index.../>子元素来映射集合元素的索引列。<element.../>元素有个not-null属性,该属性默认为false,即该列默认可以为空。

Test.java :

public class Test {	public static void main(String[] args) {		Person p1=new Person();		p1.setName("tom");		p1.setAge(20);		Set
schools1=new HashSet
(); schools1.add("小学"); schools1.add("初中"); p1.setSchools(schools1); Person p2=new Person(); p2.setName("jack"); p2.setAge(23); Set
schools2=new HashSet
(); schools2.add("小学"); schools2.add("初中"); schools2.add("高中"); p2.setSchools(schools2); Session session=HibernateSessionFactory.getSession(); Transaction txt=session.beginTransaction(); session.save(p1); session.save(p2); txt.commit(); HibernateSessionFactory.closeSession(); }}
运行Test.java,查看数据库:

对比List和Set两种集合属性:List集合的元素有顺序,而Set集合的元素没有顺序。当集合属性在另外的表中存储时,List集合属性可以用关联持久化类的外键;列和集合元素索引列作为联合主键;但Set集合没有索引列,则以关联持久化类的外键和元素列作为联合主键,前提是元素列不能为空。

你可能感兴趣的文章
laravel/dusk_Laravel Dusk简介
查看>>
slim3框架 教程_SLIM 3入门,PHP微框架
查看>>
谷歌中阻止冒泡在火狐中失效_如何在Google表格中转换货币
查看>>
wps表格日期计算天数_如何计算Google表格中两个日期之间的天数
查看>>
如何使Linux控制台更易于Linux新手使用
查看>>
谷歌浏览器开发文档获取书签_使用书签更快地浏览Word文档
查看>>
如何在Apple Watch上启用和使用缩放
查看>>
初学者:如何在Outlook 2010中向其他人分配任务
查看>>
windows 10 修复_如何修复Windows的10大烦恼
查看>>
系统映像恢复 进不了系统_如何从Windows系统映像中恢复特定文件
查看>>
如何学习Photoshop的极客指南,第2部分:面板
查看>>
如何在iPhone上将实时照片转换为视频或GIF
查看>>
xbmc_从iPhone或iPod Touch控制XBMC
查看>>
编程爱好者网站_读书爱好者的最佳免费网站
查看>>
为什么运行微波会杀死Wi-Fi连接?
查看>>
matlab生成文本乱码_如何生成完全随机/乱码文本的段落
查看>>
siri捷径调用谷歌翻译_告诉它使用Google助理,以减少Siri的麻烦
查看>>
outlook转发邮件步骤_Microsoft Outlook中的快速步骤指南
查看>>
macos 托盘文件预览_如何在Ubuntu的文件管理器中快速预览文件(如macOS中的“ Quick Look”)...
查看>>
macos 快速启动启动台_无法获取macOS通知? 这是解决方法(无需重新启动)
查看>>