BAE 环境下 hibernate annotations 配置
ejb3-persistence.jar 提供了 javax.persistence.*
hibernate-jpa-2.0-api-1.0.1.Final.jar 提供了 Hibernate对注解的支持
接着配置 hibernate.cfg.xml 加入下面的代码 添加POJO的持久化类映射
<mapping class="bean.XXX" />
之后可以持久化 bean.XXX 类了
但是之后就可能会 发现一个问题,尤其是原本在 windows下开发的。 这个问题就是数据库里的 表名大小写问题,在 windows 下mysq 的表名l默认大小写是不敏感的,但是在 linux 下 mysql 的默认是大小写是敏感的,虽然可以通过对 mysql的配置文件 my.ini 进行修改,在 [mysqld] 后添加
lower_case_table_names=
当前的环境是 BAE ,显然不可能 修改 my.ini
由于Hibernate 再解析 hql 的时候把表名转换成了纯小写,但是在自动生成表的时候 如果不修改默认映射表名的话 会根据类名生成表,这导致了在 实际做数据库操作的时候导致错误:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'llXXxMuiXhSwIXFSiXxk.users' doesn't exist
这样一来就需要把默认表名改掉,改成小写的这样生成的表和实际操作的表名就一致了。
但是这里又可能会有一个错误:
import org.hibernate.annotations.Table;
/**
* Users entity. @author MyEclipse Persistence Tools
*/
@Entity
@Table(appliesTo="Users")
很多人可能都是这样配置的,但是 @org.hibernate.annotations.Table is a complement, not a replacement to@javax.persistence.Table
@org.hibernate.annotations.Table 它只是一个补充不是替代 @javax.persistence.Table 。
如果想通过修改 appliesTo 的值来修改 映射的表名就会发生错误,这个错误不会导致 在 BAE 中不能发布,但是访问站点的时候就会出现 404 ,通过查看日志就会发现 WARNING ,错误为:
org.hibernate.AnnotationException: @org.hibernate.annotations.Table references an unknown table: users
实际上想改变默认的表名,必须使用 @javax.persistence.Table ,代码如下:
import javax.persistence.Table; /**
* Users entity. @author MyEclipse Persistence Tools
*/
@Entity
@Table(name="users")
这样就修改掉默认的映射表名,数据库也能正常使用了
BAE 环境下 hibernate annotations 配置的更多相关文章
- 百度BAE环境下WordPress安装教程
不了解代码的童鞋慎重使用这种方法哦,安装过程中可能会出现一些简单的错误. 前两天有位网友在QQ上联系我,他告诉我自己在百度BAE上安装WordPress程序总是出错.我让他按照网络上的教程逐步安装,但 ...
- Ubuntu环境下的Redis 配置与C++使用入门
Redis是一个高性能的key-value数据库. Redisedis的出现,非常大程度补偿了memcached这类key/value存储的不足,在部分场合能够对关系数据库起到非常好的补充作用.它 ...
- Windows环境下完全手工配置Apache、MySQL和PHP
现在LAMP(Linux.Apache.MySQL.PHP/Perl/Python的简称)已经很流行了.在Windows下也有类似的,比如 WAMP(Apache, MySQL, PHP on Win ...
- 【环境配置】Linux环境下下载、配置java环境、安装eclipse、建立eclipse快捷方式详解
一.首先是下载Java JDK 到目前为止的最新版本为(jdk1.8.0_60),有两种方式进行下载: 1.使用shell来进行下载,可使用如下命令直接进行下载: wget --no-check-ce ...
- windows环境下Mongodb分片配置
使用MongoDB的GridFS来存储文件,以前一直使用单个服务,分布式环境也一直没有配置成功,今天参考了几位大神的文章终于配置成功,再也不用担心文件存储的性能和安全啦.以下是自己部署的过程和示例,记 ...
- linux(ubuntu)环境下安装及配置JDK
安装完IDEA之后遇到了问题,发现jdk安装完之后配置环境变量好困难,下面总结一下我的安装及配置方式: JDK下载链接:http://download.oracle.com/otn-pub/java/ ...
- docker环境下solr6.0配置(中文分词+拼音)
前言:这篇文章是基于之前的“linux环境下配置solr5.3详细步骤”(http://www.cnblogs.com/zhangyuan0532/p/4826740.html)进行扩展的.本篇的步骤 ...
- Mac+Docker环境下xdebug的配置
由于容器化的需要,前几天我本地也换成了docker环境.就研究了一下docker环境下phpstorm和xdebug的配置. http://www.mmfei.com/?p=453 这个博客给出了一个 ...
- SpringBoot(十三)-- 不同环境下读取不同配置
一.场景: 在开发过程中 会使用 开发的一套数据库,测试的时候 又会使用测试的数据库,生产环境中 又会切换到生产环境中.常用的方式是 注释掉一些配置,然后释放一下配置.SpringBoot提供了在不同 ...
随机推荐
- 开发期间的GWT设置---加快编译速度
随着项目功能的完善,GWT模块(Module)越来越多,当要以web模式编译给测试组使用时,编译的总时间越来越多,我的机器编译完8个模块,需要10分钟左右. 抽空研究了一下GWT的编译参数和GWT编译 ...
- JS浮点类型计算
/* ---------------- JS浮点数运算重置 ---------------- */ //加法函数 //调用:accAdd(arg1,arg2) //返回值:arg1加上arg2的精确结 ...
- 3高并发server:多路IO之epoll
1 epoll epoll是Linux下多路复用IO接口select/poll的增强版本号,它能显著提高程序在大量并.发连接中仅仅有少量活跃的情况下的系统CPU利用率,由于它会复用文件描写叙述符 ...
- Qt 学习之路:Graphics View Framework
Graphics View 提供了一种接口,用于管理大量自定义的 2D 图形元素,并与之进行交互:还提供了用于将这些元素进行可视化显示的观察组件,并支持缩放和旋转.我们通常所说的 Linux 的 KD ...
- 亲测安装php
亲测安装php1.tar zvxf php-5.3.8.tar.gz 2.cd php-5.3.83../configure \ --prefix=/usr/local/php \--with-mys ...
- BootStrap table 传递搜索参数
看bootStrap table文档不难发现它有一个queryparams属性,是向后台传递参数的,默认参数已有pageSize.pageIndex等,那么怎么传递自定义的参数呢?在网上找了好多也没有 ...
- JDK5-增强for循环
下面的程序演示了增强for循环在数组及集合中的应用: import java.util.ArrayList; import java.util.HashMap; import java.util.Ha ...
- shell入门之expr的使用 分类: 学习笔记 linux ubuntu 2015-07-10 14:59 76人阅读 评论(1) 收藏
在expr中加减乘除的使用,脚本如下: #!/bin/sh #a test about expr v1=`expr 5 + 6` echo "$v1" echo `expr 3 + ...
- Bootstrap V3使用Tab标签
Bootstrap V3使用Tab标签 >>>>>>>>>>>>>>>>>>>> ...
- GET和POST本质上有什么区别
如果有人问你,GET和POST,有什么区别?你会如何回答? 我的经历 前几天有人问我这个问题.我说GET是用于获取数据的,POST,一般用于将数据发给服务器之用. 这个答案好像并不是他想要的.于是他继 ...