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>

过程图详细分解