Hibernate通过hbm方式处理List

创建实体后,实体类中有一个List类型的字段

package com.keduox.collections;

import java.util.List;

public class ListUser {

	private int id;

	private String name;

	private List<Integer> likes;

	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 List<Integer> getLikes() {
		return likes;
	}

	public void setLikes(List<Integer> likes) {
		this.likes = likes;
	}

}

HBM文件

<?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>
	<class name="ListUser" table="t_list_user">
		<id name="id" column="id">
			<generator class="native"/>
		</id>
		<property name="name"/>
		<!-- 集合的配置 -->
		<list name="likes" table="list_likes">
			<key column="like_id" not-null="true"/>
			<index column="like_index"></index>
			<element type="java.lang.Integer">
				<column name="like_value"></column>
			</element>
		</list>
	</class>
</hibernate-mapping>

测试代码

@Test
	public void test() {
		SessionFactory sessionFactory = SessionFactoryUtil.getSessionFactory();
		Session session=sessionFactory.openSession();
		Transaction tr=session.beginTransaction();
		/*ListUser listUser=new ListUser();
		listUser.setName("测试");
		List<Integer> list=new ArrayList<Integer>();
		list.add(1);
		list.add(2);
		list.add(3);
		list.add(4);
		listUser.setLikes(list);
		session.save(listUser);*/
		ListUser listUser=(ListUser) session.load(ListUser.class, 1);
		List<Integer> list=new ArrayList<Integer>();
		list.add(8);
		list.add(9);
		list.add(10);
		listUser.setLikes(list);
		session.update(listUser);
		tr.commit();
	}
时间: 2024-12-28 20:15:54

Hibernate通过hbm方式处理List的相关文章

hibernate annotation注解方式来处理映射关系

在hibernate中,通常配置对象关系映射关系有两种,一种是基于xml的方式,另一种是基于annotation的注解方式,熟话说,萝卜青菜,可有所爱,每个人都有自己喜欢的配置方式,我在试了这两种方式以后,发现使用annotation的方式可以更简介,所以这里就简单记录下通过annotation来配置各种映射关系,在hibernate4以后已经将annotation的jar包集成进来了,如果使用hibernate3的版本就需要引入annotation的jar包. 一.单对象操作 @Entity

4、Hibernate的查询方式

一.Hibernate的查询方式:OID查询 1.OID检索:Hibernate根据对象的OID(主键)进行检索 1-1.使用get方法 Customer customer = session.get(Customer.class,1L); 1-2.使用load方法 Customer customer = session.load(Customer.class,1L); 3.对象导航检索:Hibernate根据一个已经查询到的对象,获得其关联的对象的一种查询方式. Customer custom

hibernate中注解方式中的控制反转

都知道hibernate用xml方式配置关系时(one-to-many,many-to-many)可以添加控制反转属性 inverse=false(默认) 即将两表之间的关系交给对方来维护. inverse=true表示本方不维护关系,有对方维护关系 但是需注意的是,one-to-one关系是没有控制反转的,只能交由外键来维护关系. 从而导致在设置关系时,只能有外键方设置,移除关系时,只能从外键方来解除关系,删除记录时,只能先删外键方,在删主键方(save,remove,delete) 如果有控

hibernate的查询方式

hibernate的查询方式常见的主要分为三种: HQL, QBC(Query By Criteria)查询, 以及使用原生SQL查询 HQL查询 • HQL(Hibernate Query Language)提供了丰富灵活的查询方式,使用HQL进行查询也是Hibernate官方推荐使用的查询方式. • HQL在语法结构上和SQL语句十分的相同,所以可以很快的上手进行使用.使用HQL需要用到Hibernate中的Query对象,该对象专门执行HQL方式的操作. 查询所有示例 session.be

Hibernate的查询方式(简要)

Hibernate的查询方式 1.OID检索: 使用session.get(Object.class,oid),session.load(Object.class,oid),根据表的主键查询 2.对象导航检索以及联级映射的配置: 根据已有对象查询与之对应的另外一些对象,比如一个Customer对象中有一个Linkmans(联系人对象)集合,当查询出Customer后,直接变量linkMans集合就可以查询到与之对应的联系人配置文件: 一对一:<one-to-one name="User&q

hibernate中.hbm.xml和注解方式自动生成数据表的简单实例(由新手小白编写,仅适用新手小白)

绝逼新手小白,so 请大神指点! 如果真的错的太多,错的太离谱,错的误导了其他小伙伴,还望大神请勿喷,大神请担待,大神请高抬贵嘴......谢谢. 好了,正题 刚接触ssh,今天在搞使用.hbm.xml文件 和 注解方式 来自动生成数据表 其中只是整了spring.hibernate,struts部分没有整.也就是说我只是测试了能够自动生成数据表(自动生成为"标准",自认为是对的......) 下面是配置和代码: 使用工具:myeclipse 2014 ,其中web project项目

hibernate select 查询方式总结

1. 查询整个映射对象所有字段 Java代码 //直接from查询出来的是一个映射对象,即:查询整个映射对象所有字段 String hql = "from Users"; Query query = session.createQuery(hql); List<Users> users = query.list(); for(Users user : users){ System.out.println(user.getName() + " : " +

Hibernate —— Entity.hbm.xml

一.简述 1.对象关系映射文件,用于映射实体类和关系数据库数据表之间的一个 xml 文件. 2.通过 Entity.hbm.xml 映射文件,Hibernate 可以理解持久化类和数据表之间的对应关系,也可以理解持久化类属性与数据表列之间的对应关系. 3.映射主键.映射关联关系. 二.各个节点 <hibernate-mapping> <class> <id></id> <property name=""></proper

hibernate 关于hbm.xml编写的总结

在Hibernate中,各表的映射文件-.hbm.xml可以通过工具生成,例如在使用MyEclipse开发时,它提供了自动生成映射文件的工具.本节简单的讲述一下这些配置文件的配置. 配置文件的基本结构如下: <?xml version="1.0" encoding='UTF-8'?> <!DOCTYPE hibernate-mapping PUBLIC     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"