你还在为Hibernate的XXX.hbm. 配置文件中的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. 配置文件

<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. 配置文件

<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> 

过程图\"详细分解\"

收藏 打印