demo java hibernate - jmr-source/doc GitHub Wiki

hibernate(hbm.xml.jet) - 生成hibernate文件

功能描述

生成实体类对应的hibernate配置文件。

阅读前需要了解的知识:

任务

模型

标签


任务和模型

  • 模型:shop
当前任务的模型名称是shop,包含一个java实体模型book,book的relation值是one;
我们在模板中会通过<entity>得到它。

关于本demo的模型结构,详细内容请点击:模型结构 

  • 模板:hbm.xml.jet

  • 文件名:${one.Class}

我们为这个模型新设了以下属性:
Class:头字母大写的名称,可以作为类名或者需要头字母大写的部分,它的值是"Book"。
class:头字母小写的名称,可以作为头字母小写的部分,它的值是"book"。
menu:界面菜单栏的名称,它的值是"book"。

关于本demo的模型结构,详细内容请点击:模型结构

  • 扩展名:我们生成的是hibernate配置文件,所以扩展名为hbm.xml

模板详解

为了得到模型的代码提示,选好jmr文件和对应的模型shop。

初始化

  • 得到entity,它的relation为one,对应的模型为book,新设变量object指向one。
  • 设置变量table,作为表名,表名即使模型名,模型名是从数据库表名转换而来的。
  • 设置变量Class,作为类名,通过object.property("Class")得到。

生成映射

格式:
<class name="类名" table="表名">
主键的映射格式是:
 <id name="字段name" type="字段fullType">
   <column name="字段name" />
   <generator class="identity" /> 
 </id>
非主键的映射格式是:
 <property name="字段name" type="字段fullType">
   <column name="字段id" /> 
 </property>

  • 使用for遍历字段。
  • 使用if和else判断。如果字段是主键,则使用主键的格式;否则使用非主键格式。

字段name和字段id有什么区别呢?

字段id和数据库表的字段名一致,字段name则是映射后的字段名。
比如,按数据库的命名规范,有字段regist_time,它映射成jmr模型后,转为registTime。
registTime则是我们对应的java字段的名称。

运行结果

小贴士:isPk用来判断字段是否为主键,如果为true,则字段为主键;false,则为非主键。
此处将鼠标选中if中的test,可以查看判断的结果。

⚠️ **GitHub.com Fallback** ⚠️