`
yangylsky
  • 浏览: 841 次
  • 性别: Icon_minigender_1
  • 来自: KunMing
社区版块
存档分类
最新评论

Hibernate的一个坑(启动后自动创建表失败),立贴记录一下

阅读更多
新建了一个实体类,启动后发现没有自动创建表,反复查找了几个小时,终于找到了原因:
1.表字段不能和数据库的关键字冲突,实体类中有一个字段“key”,导致创建失败,改为“keyStr”后正常;
2.String类型的字段length指定不合适,测试发现,指定为4096和409600均能正常创建,但40960创建失败;

好了,问题终于解决,顺便吐槽一下hibernate,创建失败居然没有错误提示信息,真的很无语。。。。。。。
分享到:
评论
1 楼 yangylsky 2016-06-29  
又查了半天资料,原来是hibernate升级为4.x后,日志方式改了,需要在项目路径下增加log4j.properties,内容为:
# Root logger option
log4j.rootLogger=INFO, console

# Direct log messages to console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{HH:mm}| %p | %F %L | %m%n

# direct messages to file hibernate.log
log4j.logger.org.hibernate=INFO, hibernate
log4j.appender.hibernate=org.apache.log4j.RollingFileAppender
log4j.appender.hibernate.File=hibernate.log
log4j.appender.hibernate.layout=org.apache.log4j.PatternLayout
log4j.appender.hibernate.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %5p %c{1}:%L - %m%n


启动后就能看到hbm2ddl的调试信息了,如:
ERROR | SchemaUpdate.java 262 | Column length too big for column 'log' (max = 21845); use BLOB or TEXT instead
ERROR | SchemaUpdate.java 262 | You have an error in your SQL syntax;

相关推荐

    深入浅出hibernate

    1. **创建SessionFactory实例:**首先需要根据配置文件创建SessionFactory实例,这个过程比较耗时,所以一般只在应用启动时创建一次。 2. **打开Session:**每次与数据库交互时都需要打开一个新的Session。 3. *...

    hibernate.ara

    1. 实体(Entity):在Hibernate中,实体代表数据库表,通常是一个Java类,其对象与数据库表记录一一对应。 2. 映射(Mapping):实体类与数据库表之间的关系通过XML或注解方式定义,描述了属性与列、主键与外键的...

    SpringAOP整合Hibernate并使用事务(模拟买书的过程)

    在本示例中,我们将探讨如何整合Spring AOP(面向切面编程)与Hibernate ORM框架,并利用它们来实现事务管理,模拟一个简单的买书过程。这个过程将涉及到数据库操作,事务的开始、提交和回滚,以及AOP在处理事务中的...

    精通Hibernate.精通Hibernate.

    - **SessionFactory**:它是创建Session的工厂,是一个重量级的对象,在应用启动时初始化一次,整个应用生命周期中只需要一个实例。 - **Session**:它是执行数据库操作的基础,负责加载和保存持久化对象,管理...

    Hibernate开发手册

    - **生命周期**:通常在一个请求处理周期内创建,在响应完成后关闭。 - **事务**:用于确保一系列数据库操作作为一个整体成功执行或完全失败。 - **ACID 特性**:原子性、一致性、隔离性和持久性。 - **实现方式*...

    struts,spring,hibernate面试题

    - 一级缓存:每个Session内部的缓存,自动管理,事务级缓存。 - 二级缓存:可配置的全局缓存,可以是应用程序级或分布式缓存。适用于数据更新不频繁且经常被查询的数据。 **查询方式** - SQL:直接执行SQL语句。 - ...

    Hibernate3.2 官方用户手册

    - **映射文件**: 每个实体类都需要一个对应的 XML 映射文件,用于定义对象与数据库表之间的映射关系。 - **SessionFactory**: 应用程序启动时初始化 SessionFactory,它是 Hibernate 进行持久化操作的核心工厂。 ##...

    基于java+mysql的一个网上书店

    标题 "基于java+mysql的一个网上书店" 描述的是一个使用Java编程语言和MySQL数据库系统开发的在线购物平台,专门用于售卖书籍。这个项目的核心在于利用Java的后端技术和MySQL的数据库管理能力,构建一个用户友好、...

    java笔试面试题(含有笔试题,核心技术,重点知识,struts,hibernate,spring,eclipse)

    - **常见错误解决**:例如启动失败、端口冲突等问题的排查与解决方法。 以上内容涵盖了Java笔试面试题中提到的核心技术和重点知识,对于准备Java相关职位的面试者而言非常实用。理解并掌握这些知识点不仅有助于面试...

    SS2H的理解

    4. **结果视图的返回**:Action对象执行完成后,会返回一个`ActionForward`对象来指示应该跳转到哪个视图(通常是JSP页面)。通过这种方式,开发者可以在不修改Action代码的情况下改变视图展示的逻辑。 #### ...

    Jboss下开发ejb应用之一实体bean的应用

    为了管理数据库连接,我们可以使用JPA(Java Persistence API)和一个支持的持久化提供商,如Hibernate。在应用服务器的配置文件中,如standalone.xml或domain.xml,我们需要配置数据源,并指定JPA供应商。 最后,...

    面试题问题合集.docx

    Spring Boot 提供了一系列的自动配置类,这些类会在应用程序启动时被自动检测并配置。 4. **组件扫描**:通过`@ComponentScan`注解可以指定组件扫描的范围,Spring Boot 默认会扫描包含主类的包及其子包。 5. **...

    SSH简易更新

    总之,“SSH简易更新”系统结合了Struts2的Web交互、Spring的依赖管理和AOP特性,以及Hibernate的数据持久化,构建了一个能够自动或手动检查和应用更新的解决方案。理解并掌握这些关键知识点对于维护和扩展这样的...

    Nhibernate简单实例

    SessionFactory通常在应用程序启动时创建一次,而Session则在每次请求或业务操作中创建和关闭。 **CRUD操作** 1. **Create(创建)**: 当创建一个新的实体对象并调用Session的Save()或SaveOrUpdate()方法时,...

    第二期2020字节跳动面试题及解析.pdf

    Mybatis仅负责将SQL映射到Java对象,并处理SQL的执行,但不会自动创建SQL语句,所以称为半自动ORM映射工具。与全自动ORM框架相比,如Hibernate,它提供了更大的灵活性。 #### 2.13 关联查询的实现 Mybatis支持一对...

    jquery 分页和验证(java版)

    总的来说,这个实例展示了如何利用jQuery和SSH框架创建一个具有分页和验证功能的Java Web应用。通过前后端的协同工作,实现了高效且用户体验良好的数据展示和用户输入管理。学习并掌握这些技能对于提升Java Web开发...

    java面试问题汇总(非常全面)

    - **事务**:一组操作作为一个整体,要么全部成功,要么全部失败。 - **存储过程**:预编译的 SQL 语句集合,可以接受输入参数并返回结果。 - **ORDER BY**:对查询结果排序。 - **GROUP BY**:按指定列分组。 ####...

Global site tag (gtag.js) - Google Analytics