多对多1
程序员文章站
2022-04-24 10:52:23
...
-
数据库的多对多
1.1 数据库中不能直接映射多对多
处理:创建一个桥接表(中间表),将一个多对多关系转换成两个一对多注1:数据库多表联接查询
永远就是二个表的联接查询查询一本书为例 sesssion.get(Book.class,5)-> select * from t_hibernate_book where book_id = ?(5) resultSet->5 a 10 Book b = Class.forName("com.zking.five.entity.Book").newInstance(); b.setBookId(5); b.setBookName(a); b.setPrice(10); hibernate处理关联关系 1、通过set找到桥接表(table属性), 2、找到当前实体类对应表的主键在桥接表中的外键(key标签中的column属性) 3、查出关联表(t_hibernate_category)的主键(category_id) select cid from t_hibernate_book_category where bid = ?(5) resultSet->关注最后一列 8 5 4 9 5 5 10 5 2 list<String>4/5/2 4、查出来的外键关联了一个实体类(class=com.zking.five.entity.Category),它可以 找到这个类的映射文件(class标签的name=com.zking.five.entity.Category;),从而 找到了对应的实体类对应的表的主键id标签中的column字段-》category_id select * from t_hibernate_category where category_id in (4,5,2); 2 神话 4 a0 5 a1 Category c = Class.forName("com.zking.five.entity.Category").newInstance(); 原理参照EntityBaseDao->List<c> categories 5、b.setCategories(categories);
上一篇: java bio与nio
下一篇: netty使用(一):java NIO