Hibernate 里边,有三种方式进行一对多的关联,Set List 以及Map。
这三种情况,符合他们的基本特性。Set 无序 List有序 Map是key-value 格式的。
这里其他的不多说,只是写一下List怎么关联。
List 关联,那么,想想特点。是有序的,可以重复的。怎么实现在关联关系上边呢?
Hibernate 中是有list关联的标签的。那么,应该就是这个标签。list 是需要一个下标来区分顺序的。算了,不说这些模糊的东西了。直接上代码吧。
简介:这个里边,我用的是自关联,就是同一个类型,他的子关联也是本身的类型。
实体类:
public class BookType {
private Integer id;
private String typeName;
private List<BookType> children;
setters 跟getters 略
}
配置文件:
<hibernate-mapping package="com.qidss.cms.entity">
<class name="BookType" table="book_type">
<id name="id" unsaved-value="null">
<generator class="identity"></generator>
</id>
<property name="typeName" type="string" column="type_name"></property>
<!--由于index需要team来维护,所以,使用list表示1对多时候,不能再1方设置inverse="true"-->
<list name="children" table="book_type" cascade="all" lazy="false">
<key column="preant_id"></key>
<!-- index代表key,element(或one-to-many)代表value-->
<!-- 这里用cardid作为key,具体的student实例作为value -->
<index column="idx" type="int"></index>
<one-to-many class="BookType" />
</list>
</class>
</hibernate-mapping>
不懂各项属性的,看一下api
配置是这样配置,那么总的还需要做增删改操作。但是,删除是不一样的。在你把他删除的同时,你需要把他的下标也删除掉。