hibernate映射postgreSQL数据库中的表时,表名是大写的时候为什么hibernate不能映射实体 5
并且当表中的字段名为大写的时候为什么,不能关联导致不能查询出数据,没有豆豆了,麻烦各位解答一下,谢谢...
并且当表中的字段名为大写的时候为什么,不能关联导致不能查询出数据,没有豆豆了,麻烦各位解答一下,谢谢
展开
3个回答
展开全部
数据库里面的字符不分大小写,但是java实体类的属性是敏感的,所以写配置文件时属性名一定要跟实体类里面一样的,列名不用管大小写问题。
但是你写hql时:例如:select * from User ,这个User 是你的实体类名,不是你的表名,hibernate是通过配置文件将表名与实体类名映射的。
但是你写hql时:例如:select * from User ,这个User 是你的实体类名,不是你的表名,hibernate是通过配置文件将表名与实体类名映射的。
追问
您好,比如当用户创建table的时候他用命令 Create “Table”,这样出来的表名就是大写的,导致hibernate没有办法映射为实体类,再次就是当列名为大写的时候,其实也就是当用户创建列名的时候他是“CloumnName”这种导致不管你后台传过去的列名是什么样的都没有办法查询只有用“列名”这种能查询出结果,不知道有什么办法既能读取带有引号的列名和没有引号的列名
追答
当你创建一个表名字为“Table”时,hibernate的映射文件会有响应的配置
比如;这里不用转义
另外当列名为大写时,名字为“CloumnName”,实体类得属性名为:‘name’。
例如:
最后你写sql查询时这样写的:select name from TestTable where id=1
展开全部
在你的映射文件里面把class name="" table="" 把table加上就行了。大小写问题
追问
class name="\" table\""
这种在XXX.hbm.xml中加上转义符和双引号会报错的
追答
不能加转义符哈,如果表名是关键字,用``
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数据库 和映射文件 或者注解 的字段名最好一样 大小写一致 表字段改成大写 映射关系中也改成大写 试试
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询