Hibernate 开发流程笔记(中)

转载 2013年12月03日 11:56:03

继续上篇,我们已经通过使用hbm2java来生成了entity实体类,这些实体类可能会有问题,需要修改。修改完成之后配置hbm2ddl来测试orm是否有问题。


在entity的one-to-many关系中,我习惯使用List而不是HashSet,对五个实体类进行修改,配置hbm2ddl,发现只能生成user表,forum表,subforum表


调试一天发现:对于topic和reply的 text类型的字段,hbm2java后长度为65535;在Mysql文档上查询,发现下面这句话:


The effective maximum length of aVARCHAR in MySQL 5.0.3 and later is subject to the maximum row size (65,535 bytes, which is shared among all columns) and the character set used


其中的关键之处在于 65535的单位是byte,而我的数据库编码方式却是utf8_genera_ci,长度上肯定要小很多,测试发现utf8_general_ci字符集的varchar最多可以设为21806;

因此,在实体类中,把Topic和Reply的内容长度通过注解的方式给成10000即可解决问题,hbm2ddl后内容字段类型为varchar(10000) 

对于text类型,在powerdesigner进行设计时不推荐使用!


除了这些,还要在entity中设置主键增长策略。JAP中,只有四种主键增长策略:

  1. 容器自动生成---GeneratorType.AUTO 
  2. 根据数据库序列号(Sequence)生成 ---GenerationType.SEQUENCE  ,oracle支持
  3. 使用数据库的自动增长字段生成---GenerationType.IDENTITY 
  4. 使用数据库表的字段生成---GenerationType.TABLE 
Forum表和Subforum表可以设为AUTO,但是User等其他表需要使用uuid增长策略,解决方法是 JPA注解和Hibernate注解一起使用。
  1. //uuid增长策略  
  2. @GenericGenerator(name = "idGenerator", strategy = "uuid")  
  3.     @GeneratedValue(generator = "idGenerator")  
  4.   
  5. //auto增长策略  
  6. @GeneratedValue(strategy=GenerationType.AUTO)  

相关文章推荐

Hibernate 开发流程笔记(上)

大学的时候,我一向对软件开发的工具流十分的不屑,秉着没事找抽的原则,力求能多麻烦就能麻烦。而今回想,开发是门工作,是十分讲究效率的,所以,在理解知识的前提下。Don‘t repeat yourself...

使用struts、hibernate、spring进行框架整合流程详细说明(完整版)附:开发规范

SSH框架应用非常广泛,是目前较流行的一种Web应用程序开源框架。很多公司很多项目都会用到这3种框架,那么如何正确规范的使用这三种框架开发实际的项目呢?下面介绍struts、hibernate、spr...
  • bertyj
  • bertyj
  • 2015年04月03日 02:22
  • 272

hibernate开发流程 入门

  • 2009年06月09日 20:18
  • 863KB
  • 下载

Hibernate开发流程(二)

Hibernate环境搭建 1. 导入hibernate-release-5.1.0.Final\lib\required路劲下所有的jar包: 2. 导入数据库驱动的jar包: Hiber...

Hibernate开发流程——基本概念和CURD

Hibernate开发流程——基本概念和CURD 一、开发流程 (1)       Domain类 (2)映射文件User.hbm.xml (3)表create table user(); ...

理解Spring+SpringMVC+Hibernate开发流程,附一定源码(一)

本例采用Eclipse实现spring+springMVC+hibernate项目的建立,在项目建立的过程中进行一定讲解,方便理解是如何开发使用spring+springMVC+hibernate的思...

Hibernate的基本开发流程

一、Hibernate开发的基本流程                                     二、Hibernate开发的环境搭建 1、引入Hibernate核心包以及Hibern...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hibernate 开发流程笔记(中)
举报原因:
原因补充:

(最多只允许输入30个字)