Hibernate的name属性,class属性,column属性具体指向
你还在为Hibernate的XXX.hbm.xml配置文件中的name属性,class属性,column属性搞的晕头转向吗?其实很简单,name就是你在配置文件JavaBean中定义属性名,class就是该属性名的类型,column就是该属性在数据库表中对应的列名。
比如(一对一关系中的双向外键关系:即在学生卡中以s_id为外键,在两个类中都带有各自参照对象的实例也就是Student类中创建了一个card,Card类中创建了student)
其实:一对一关系有四种情况,分别是:
- 单向主键关联
- 双向主键关联
- 单向外键关联
- 双向外键关联
两个数据表:
学生(student):
- s_id,
- s_name
学生卡(card):
- c_id,
- c_money,s_id
两个javabean类:
Student类:
- int S_ID;
- String S_NAME;
- Card card;
Card类:
- int C_ID; i
- nt C_MONEY;
- Student student;
Student.hbm.xml配置文件
<class name="Student" table="tb_student">
<id name="S_ID" column="s_id" type="int">
<generator class="assigned"></generator>
</id>
<property name="S_NAME" column="s_name" type="string"></property>
<one-to-one name="card" class="Card" cascade="all"></one-to-one>
在Student类中,name就为属性名card,而name的类型就是Card,
</class>
Card.hbm.xml配置文件
<class name="Card" table="tb_card">
<id name="C_ID" column="c_id" type="int">
<generator class="assigned"></generator>
</id>
<property name="C_MONEY" column="c_money" type="string"></property>
<!-- 设置unique="true"就可以控制是一对一,而不是多对一 -->
<many-to-one name="student" class="Student" cascade="all" unique="true"></many-to-one>
在Student类中,name就为属性名,而name的类型就是Card,
</class>
过程图