Hibernate框架关系映射一对多双向关联

时间:2023-11-12 10:15:26

直入主题,首先大配置常规配置,

Hibernate框架关系映射一对多双向关联

这里住要说关联关系,大配置不多少,而且jar包默认添加好,笔者用的是idea2016.

然后我们知道关联关系主要是在小配置添加节点来配置属性。个人认为关联映射,就是对应关系,让我们的程序来找到,想要的实体并映射到oracle数据库表。

然后我用的是两个表一个是街道,一个是房屋。房屋是多,街道是一,对应关系。

然后我们看一下数据库表

Hibernate框架关系映射一对多双向关联

只关注我们用的表

然后在看一下表结构

Hibernate框架关系映射一对多双向关联

Hibernate框架关系映射一对多双向关联

然后我们看一下我们的对应实体类

这是house的

Hibernate框架关系映射一对多双向关联

这是street的

Hibernate框架关系映射一对多双向关联

看完实体类就到重点了,我们看一下与其对应的小配置

这是house对应的小配置

Hibernate框架关系映射一对多双向关联

这是street对应的小配置

Hibernate框架关系映射一对多双向关联

我们看的主要是set节点下的name对应的是我们的set集合,key是house的外键,one-to-many下的class是house

然后就是house的小配置

Hibernate框架关系映射一对多双向关联

对大概就是这样,现在书写测试类

  @Test
public void manyToMany(){//多对多
Session session = HibernateUtil.currentSession();
Street street=new Street();
street.setName("wwy村");
street.setDisrict_id(1);
Street street2=new Street();
street2.setName("wwwy村");
street2.setDisrict_id(1); House house=new House();
house.setTitle("BIGHOUSE");
house.setDescription("房子");
house.setPrice(100);
house.setPubdate(new Date());
house.setFloorage(180);
house.setContact("呵呵");
house.setUser_id(1);
house.setType_id(1);
house.getStreetSet().add(street); House house2=new House();
house2.setTitle("BIGHOUSE");
house2.setDescription("房子");
house2.setPrice(100);
house2.setPubdate(new Date());
house2.setFloorage(180);
house2.setContact("呵呵");
house2.setUser_id(1);
house2.setType_id(1);
house2.getStreetSet().add(street2); Transaction tc=session.beginTransaction();
session.save(street);
session.save(street2);
session.save(house);
session.save(house2); tc.commit();
HibernateUtil.closeSession();
}

这样基本就搞定了。