hibernate 在表名映射时如何保持大小写区分呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hibernate 在表名映射时如何保持大小写区分呢?相关的知识,希望对你有一定的参考价值。

就是表为T_XXX不要被映射为t_xxx而是保持原样的(T_XXX),因为我的数据库是大小写区分的,而我不能改数据库

hibernate配置时每个<class>对映一对“java类——数据库表”映射,name属性写完整类名,table属性写表名。
按你要求,设<class name="xxx.xxx.xxx.T_XXX" table="T_XXX" ">这样就保持原样了。
实际上不必强求名字一致,所谓映射就是“画条线连接两个现成的东西”,你随便选个类、再选个数据结构相同的表,把它们名字填进去,都是对的。
参考技术A hibernate映射文件的命名是随意的,想怎么起都行。只要hibernate的配置文件里加入就行了。如下
<property name="mappingResources">
- <list>
<value>com/Eegg/ORM/Admin.hbm.xml</value>
<value>com/Eegg/ORM/Cart.hbm.xml</value>
<value>com/Eegg/ORM/CartList.hbm.xml</value>
<value>com/Eegg/ORM/City.hbm.xml</value>
<value>com/Eegg/ORM/Goods.hbm.xml</value>
<value>com/Eegg/ORM/Linked.hbm.xml</value>
<value>com/Eegg/ORM/Member.hbm.xml</value>
<value>com/Eegg/ORM/Note.hbm.xml</value>
<value>com/Eegg/ORM/OrderList.hbm.xml</value>
<value>com/Eegg/ORM/Orders.hbm.xml</value>
<value>com/Eegg/ORM/Province.hbm.xml</value>
<value>com/Eegg/ORM/Types.hbm.xml</value>
<value>com/Eegg/ORM/Favorite.hbm.xml</value>
</list>
</property>

映射文件名和表名是没有必然联系的,只要在映射文件中指定表名和字段名就行了。如下,table就代表表名。
<hibernate-mapping>
<class name="com.Eegg.ORM.Admin" table="Admin" schema="dbo" catalog="Eegg" lazy="false">
<id name="aid" type="java.lang.Integer">
<column name="aID" />
<generator class="native" />
</id>
<property name="aname" type="java.lang.String">
<column name="aName" length="15" not-null="true" />
</property>
<property name="apass" type="java.lang.String">
<column name="aPass" length="15" not-null="true" />
</property>
<property name="apur" type="java.lang.Integer">
<column name="aPur" not-null="true" />
</property>
<property name="aremark" type="java.lang.String">
<column name="aRemark" length="50" />
</property>
<property name="photo" type="java.lang.String">
<column name="photo" length="50" />
</property>
</class>
</hibernate-mapping>本回答被提问者和网友采纳
参考技术B 你是用MYECLIPSE自动生成?
那建议手动改吧
如果我理解不对的话,那你就改hbm.xml
在table属性里可以设置映射关系

hibernate配置文件怎么修改才能使表名、字段名区分大小写

加双引号的方法虽然可以,但是所有表名、字段名都加双引号很难看,我希望有其他的方法;我的数据库是区分大小写的,而且我的表名、字段名统一都是大写;但是调用getHibernateTemplate()相关方法时会报错,表(user,数据库实际是USER)不存在
hibernate配置文件:
<hibernate-mapping>
<class name="fengx.domain.UserInfo" table="USER_INFO">
<id name="id" type="java.lang.String">
<column name="ID" />
<generator class="uuid" />
</id>
<property name="userName" type="java.lang.String">
<column name="USER_NAME" length="40" />
</property>
</class>
</hibernate-mapping>

这种东西会的话就用myeclipse自带的自动反转功能,挺好用的 参考技术A 你可以使用hibernate的自定义命名策略,详细请参看http://blog.csdn.net/jackyxwr/article/details/8618908

以上是关于hibernate 在表名映射时如何保持大小写区分呢?的主要内容,如果未能解决你的问题,请参考以下文章

hibernate配置文件怎么修改才能使表名、字段名区分大小写

hibernate映射postgreSQL数据库中的表时,表名是大写的时候为啥hibernate不能映射实体

hibernate怎么区分表名大小写(用的oracle数据库,想让他指向小写的表名)

linux下mysql表名大小写问题

将db导入Windows时保持区分大小写

Spring Boot + JPA(hibernate 5) 开发时,数据库表名大小写问题