小弟刚刚接触hibernate,其中有多种关联关系,对关联关系在映射文件中的配置不是太熟悉。感觉hibernate中的映射文件就是在数据库表中建立各种主外键的关系。不知道这种理解对不对。呵呵请大哥大姐们给讲讲。能不能在推荐推荐什么资料看看就好了。
[b]问题补充:[/b]
hibernate映射文件中的,,的作用是不是就是反应数据库表中的主外键之间的关系???
hibernate是通过映射生成数据库表的,同时也会根据你的配置生成表之间的关系,其实现在的hibernate的xml对实体的配置已经简化的相当简单了,hibernate-config实体配置片段:
[code="xml"]
[/code]
在xml中只需要指定你的映射类,都可以根据jdk的新特性annotation来完成一系列的字段、关系的描述,LZ可以看下这方面相关的资料。
实体类片段:
[code="java"]
/**
*/
@Entity
@Table(name = "TB_ROLE")
public class TbRole extends TbSuperEntity {
private static final long serialVersionUID = -3811521630441663199L;
public TbRole() {
}
public TbRole(Long id) {
super.setId(id);
}
@Column(name = "ROLE_NAME_", length = 64, nullable = true, unique = true)
private String roleName;// 角色名称
@Column(name = "ROLETYPE_")
private Integer roleType;// 系统默认的角色类型 const中定义
@Column(name = "IS_WORK_USER_")
private Boolean isWorkUser;// 是否为经办角色
@Column(name = "IS_TOP_USER_")
private Boolean isTOPUser;// 是否为经办角色
@Column(name = "REMARK_", length = 100)
private String remark;// 说明、备注
@ManyToOne(targetEntity = TbUnitCodePc.class, fetch = FetchType.EAGER)
@JoinColumn(name = "UNIT_CODE_PC_ID_")
private TbUnitCodePc tbUnitCodePc;// 单位代码策略,用户增加的角色属于哪个单位级别(系统默认的角色为null,根据roleType判断)
@OneToMany(mappedBy = "tbRole", fetch = FetchType.LAZY)
private Set tbUserInfos = new HashSet(0);// 用户
@ManyToMany(fetch = FetchType.LAZY)
private Set tbModules = new HashSet(0);// 对应的模块
@ManyToMany(fetch = FetchType.LAZY)
private Set tbFunctions = new HashSet(0); // 对应的函数
//get set ............
[/code]
是的,但是现在不用这么麻烦直接在实体类中就可以,hibernate.cfg.xml中只需要指定实体类的路径就可以了