最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Hibernate集合映射Set篇

来源:动视网 责编:小采 时间:2020-11-09 14:45:03
文档

Hibernate集合映射Set篇

Hibernate集合映射Set篇:集合映射 我们通过一个具体示例看一下如何在Hibernate中使用集合映射。 例如:在一个购物网站中,需要有个用户表用来记录用户的基本信息,这张表包括用户的ID,姓名以及邮寄地址,但是有些人可能有多个邮寄地址,这时在数据库中我们需要使用另外一张表单独存
推荐度:
导读Hibernate集合映射Set篇:集合映射 我们通过一个具体示例看一下如何在Hibernate中使用集合映射。 例如:在一个购物网站中,需要有个用户表用来记录用户的基本信息,这张表包括用户的ID,姓名以及邮寄地址,但是有些人可能有多个邮寄地址,这时在数据库中我们需要使用另外一张表单独存


集合映射 我们通过一个具体示例看一下如何在Hibernate中使用集合映射。 例如:在一个购物网站中,需要有个用户表用来记录用户的基本信息,这张表包括用户的ID,姓名以及邮寄地址,但是有些人可能有多个邮寄地址,这时在数据库中我们需要使用另外一张表单独存

集合映射

我们通过一个具体示例看一下如何在Hibernate中使用集合映射。

例如:在一个购物网站中,需要有个用户表用来记录用户的基本信息,这张表包括用户的ID,姓名以及邮寄地址,但是有些人可能有多个邮寄地址,这时在数据库中我们需要使用另外一张表单独存储用户的邮寄信息,在这张表中使用UserId作为用户表的一个外键,从而实现两张表之间的关联。

这里我们使用Hibernate的自动建表机制,不在数据库中创建相应的数据表。

要实现自动建表需要在Hibernate.cfg.xml文件中添加如下属性

update

首先创建用户类,用户类中有id属性,姓名属性和存放收货地址的属性,因为收货地址有多个所以不能使用String类型,所以考虑使用集合类型,因此创建具体类如下:

package entity;

import java.util.HashSet;
import java.util.Set;

public class TUser{

	private int id;
	private String name;
	private Set userAddresses = new HashSet();

	//省略get/set方法
}

然后写TUser类的具体映射配置文件。

在Hibernate中要通过用户表中映射文件访问到集合表需要知道一下信息

1、 集合表的名称(表名称)

2、 集合表中的外键(集合外键)

3、 集合表中的元素列(集合元素)

然后看具体配置代码


 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

标签用于指定集合映射,其name属性用于指定POJO类中Set类型数据属性名,table用于指定其关联的数据表。

标签用于指定关联表的外键。用于指定关联表中其他属性。

下面看一下测试代码

package Test;

import java.util.HashSet;
import java.util.Set;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

import entity.TUser;
import SessionFactory.HibernateSessionFactory;

public class Test {

	private Session session = null;
	private Transaction tran = null;

	@org.junit.Test
	public void test() {
	Set set = new HashSet();
	set.add("地址一");
	set.add("地址二");
	session = HibernateSessionFactory.getSession();
	tran = session.beginTransaction();
	try {
	TUser user = new TUser();
	user.setId(2);
	user.setName("张三");
	user.setUserAddresses(set);
	session.save(user);
	tran.commit();
	} catch (Exception e) {
	tran.rollback();
	} finally {
	HibernateSessionFactory.closeSession();
	}
	}

	@org.junit.Test
	public void get() {
	session = HibernateSessionFactory.getSession();
	String hql = "FROM TUser t where t.id=1";
	Query query = session.createQuery(hql);
	TUser user = (TUser) query.uniqueResult();
	System.out.println(user.getName());
	}

}

然后通过数据库查询即可查询到相应数据。

文档

Hibernate集合映射Set篇

Hibernate集合映射Set篇:集合映射 我们通过一个具体示例看一下如何在Hibernate中使用集合映射。 例如:在一个购物网站中,需要有个用户表用来记录用户的基本信息,这张表包括用户的ID,姓名以及邮寄地址,但是有些人可能有多个邮寄地址,这时在数据库中我们需要使用另外一张表单独存
推荐度:
标签: 映射 集合 我们
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top