使用Hibernate自动创建表的同学请注意下了!
Oralce数据库环境下,有两个Scheme ,如Scheme 1与Scheme 2;并且Scheme 1的user具有DBA权限,能够访问到Scheme 2中的T_CONFIG表(假设T_CONFIG表在Scheme 2中已经存在)。那么在Scheme 1中使用Hibernate的自动创建表T_CONFIG时,可能出现在Scheme 1中不能创建T_CONFIG表的情况。
无意中发现这个问题的,启动项目时,没有正常打印出INFO org.hibernate.tool.hbm2ddl.TableMetadata - foreign keys: [] 日志,本来以为是Hibernate不能自动创建表的原因,于是重新建了个用户,只给予此用户Resouce与connect角色权限,配置好后重启应用发现能够自动创建表(但是还是没看到校验的日志信息);诧异了中看了下Hibernate的源码,发现如果不配置default_schema那么程序将使用默认的Environment.DEFAULT_SCHEMA(从hibernate.properties文件中获取,hibernate.properties没有配置就是null)。
解决方法,如果是用了spring+hibernate配置如下:
<bean name="hibernateProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="properties">
<props>
<prop key="hibernate.default_schema">${hibernate.default_schema}</prop>
<!--其他配置-->
</props>
</property>
</bean>
至于校验信息不能打印出来是由于slf4j两个包冲突了,去掉slf4j-log4j12就可以正常显示了。
如果不想使用Hibernate的自动创建表功能,只要不设置此参数局可以了,spring默认注入此参数是false
<property name="schemaUpdate" value="${hibernate.schema_update}"/>
相关推荐
- **Hibernate配置**: 配置文件中的`jdbc.url`、`hibernate.dialect`、`jdbc.username`、`jdbc.password`、`hibernate.default_catalog`以及`hibernate.default_schema`等参数需根据实际情况进行调整。 **注意事项*...
### Struts2、Spring与Hibernate整合的关键点及注意事项 #### 一、概述 在Java Web开发领域,Struts2、Spring以及Hibernate是三个非常重要的框架。它们分别在MVC架构、依赖注入与业务逻辑管理、对象关系映射等方面...
五 自定义标签及使用自己创建的表的实现过程 下面是我自己定义的标签mycontent_list 首先,在数据库里创建了一个jc_mycontent的表,其中有id,title,content三个字段 其次,创建了一个实体类 public class ...
S2SH框架是指Struts、Spring以及Hibernate这三个开源框架的组合使用。这种组合能够有效地提高Web应用的开发效率,简化复杂业务逻辑的处理,并增强系统的可维护性。本文将详细介绍如何在开发环境中搭建S2SH框架。 ##...
**注意**:如果使用的是Tomcat 5.0,请确保移除`common\endorsed`目录下的`xml-apis.jar`文件,以避免发布测试时出现问题。 ##### 2. 配置Struts2 - **添加Struts2依赖库**: - `commons-logging-1.0.4.jar` - `...
请注意,这里面有一个方法名 selectUserByID 必须与 User.xml 里面配置的 select 的id 对应() 重写测试代码 程序代码 程序代码 public static void main(String[] args) { SqlSession session = ...
题目提到的是2.3.16.3版本,但随着软件的更新迭代,实际下载时请注意获取最新的稳定版本。推荐下载“Full Distribution”版本,因为它包含了所有必需的库文件和文档。 #### 三、项目创建与配置 使用Eclipse IDE...
<package name="default" extends="struts-default"> <result name="success">/WEB-INF/jsp/userList.jsp ``` 3. **applicationContext.xml**: ```xml ...