方法一
ibernate怎么实现一个类对象map多个表名 1) 映射文件 在一个映射文件中定义class和table的对应关系,用entity-name来区分不同的映射: <class=”MyClass” entity-name=”testA” table=”mytable_A”> <property name=”name” column=”st_name”/> …… </class> <class=”MyClass” entity-name=”testB” table=”mytable_B”> <property name=”name” column=”st_name”/> …… </class> (2)在API调用、HQL语句中使用entity-name,而不是class名称。 get(“testA”, id) delete(“testA”, object) save(“testA”, object) saveOrUpdate(“testA”, object) from testA t where t.name = ‘hello’
方法二
近用Hibernate做一个项目的时候遇到这么一个问题: 用一个配置文件,一个类去映射多个表,(每个表的结构相同)。按照平时的做法,有多少个表就要 写多少个配置文件,岂不是很麻烦。怎样才能只写一个配置文件就能达到上述目的呢? 经过研究,发现Hibernate中的NamingStrategy可以达到这个目的。它是用来定义表名和列名映射规 则的一个接口。我们要通过实现这个接口来实现自己的命名策略。这个接口中包含的十个方法,其中的 public String classToTableName(String className)是通过类名来映射表名的。实现我们的想法就要用 到这个方法。好了,下面来看怎么做: 1、自定义一个类MyNamingStrategy来实现NamingStrategy。(这样你要实现10个方法,如果其他方法 不需要,我们可以通过继承它的一个适配器类DefaultNamingStrategy来只实现我们需要的方法)好了,我 们就继承DefaultNamingStrategy 吧。 2、实现public String classToTableName(String className)方法来实现自己命名策略。 我这的业务需要是每隔一个月就要换一个表。比如1月用biz_1,那么2月就用biz_2....但是这些表的结构是相同的。我们要做的就是通过获得月份来动态的选择表。我们从这个方法中这样写: public class MyNamingStrategy extends DefaultNamingStrategy { public static final MyNamingStrategy INSTANCE = new MyNamingStrategy(); public String classToTableName(String className) { return "biz_" + Calendar.getInstance().get(Calendar.DAY_OF_MONTH); } } 好了,这样就可以根据月份来动态的选择表名了。 3、使用命名策略。 要使用这个命名策略可以这样: Configuration cfg = new Configuration() .setNamingStrategy(MyNamingStrategy.INSTANCE) .configure("hibernate.cfg.xml") .addFile("biz.hbm.xml"); ok,这样就可以实现我们的动态表名映射啦!
相关推荐
和其它许多批注一样,在多对多关联中很多值是自动生成,党双向多对多关联中没有定义任何物理映射时,Hibernate根据以下规则生成相应的值,关联表名:主表表名+下划线+从表表名,关联到主表的外键名:主表名+下划线+...
第9课 Hibernate的重点学习:Hibernate的对象关系映射 12 一、对象---关系映射模式 12 二、常用的O/R映射框架: 13 第10课 模拟Hibernate原理(OR模拟) 13 一、 项目名称 13 二、 原代码 13 第11课 Hibernate基础配置...
如何使用Myeclipse生成映射文件和实体类? 映射文件和实体类《=========》DB 1)如何根据DB生成实体类和映射文件 ...选择映射类型,一般选择Hibernate Types k.点表名可以设置实体类名和主键生成方法 l.完成
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 在获取便利操作的同时,SQL的注入问题也值得我们的密切注意,...
Hibernate注释大全收藏 声明实体Bean @Entity public class Flight implements Serializable { Long id; @Id public Long getId() { return id; } public void setId(Long id) { this.id = id; } } @Entity ...
Hibernate框架介绍以及入门 【二】 ...二、关于hibernate映射的配置 映射 1、【class标签的配置】 这个标签是来建立类与表(数据库)的映射关系 属性: name:类的一个全路径 table: 表名(类名如果和表名一致那么table可
@Entity 映射实体类 @Table 映射数句库表 @Entity(name="tableName") - 必须,注解将一个类声明为一个实体bean。 属性: name - 可选,对应数据库中的一个表。若表名与实体类名相同,则可以省略。 @Table(name="",...
对应的持久化对象名" table="对应数据库中的表名"> 数据库中表的主键名所对应的持久化对象中的属性名" column="对应数据库中表的主键名" type="java.lang.String(数据库中主键字段的数据类型)"> ...
* 3.hilo 要在数据库中建立一张额外的表,默认表名为hibernate_unque_key,默认字段为integer类型,名称是next_hi(比较少用) * 例:@GeneratedValue(generator = "paymentableGenerator") * @GenericGenerator...
本软件采用.Net2.0开发,请检查机器是否安装.net ...支持关系映射。 若想更好的利用此软件加快开发效率,减少成本,请遵循Hibernate规范。 例如: 表必须有主键。 表名、列名不使用关键字。 注: 新手不建议使用。
头信息就不多说了,首先写好一个hibernate-mapping首尾标记,在标记内映射我们相对应的实体类。在class标记的name属性的值对应我们的实体类(全路径),table属性对应我们在数据库的表名。id标记为我们数据库的主键...
1. 简介 2. 起步 2.1 下载并安装Grails 2.2 创建一个Grails应用 2.3 Hello World示例 2.4 使用IDE 2.5 规约配置 2.6 运行Grails应用 2.7 测试Grails应用 ...15.1 通过Hibernate注释进行映射 15.2 深入了解 16. 脚手架
本书详细介绍了MyBatis的基础组成、配置、映射器、动态SQL,教会读者正确使用MyBatis,书中包含大量的实例,使读者可以参考。接着介绍了MyBatis的运行原理和插件开发并配有一个完整的插件例子。为了增加实用性,作者...
本书详细介绍了MyBatis的基础组成、配置、映射器、动态SQL,教会读者正确使用MyBatis,书中包含大量的实例,使读者可以参考。接着介绍了MyBatis的运行原理和插件开发并配有一个完整的插件例子。为了增加实用性,作者...
ibernateSynchronizer 连接...这样虽然能连接上了数据库,但是生成的hbm.xml没有各个字段与属性的映射。 在这里我们还要加一个过滤器,把系统表(表名带$)过滤掉,在Schema pattern 里面输入你的大写用户名即可
手动创建一个对应数据表的实体类,并在实体类上使用@Entity注解标记该类是一个实体类,@Table注解指定该实体类映射的数据表名。 创建Repository接口 创建一个Repository接口,继承自JpaRepository或者...
如果以上两个条件成立,那么书写操作数据库的代码很简单:只需呼叫FacadeForDAO.findModel(表名)方法,在表名参数给出实际数据库中表的名称就可以返回一个包含对应POJO类的对象的集合--非常简单--输入表名得到Java...
利用Java反射机制实现Android数据库操作的封装,不用频繁对数据库进行操作,定义好一个实例类后,只需新增一行代码就能实现根据类名映射出相关的数据表名,列名,和相关的增删改查工作。类似于J2EE中的 Hibernate...
读取hibernate的配置文件和映射文件 3.构建SessionFactory对象 Transaction 1.事务管理对象 Query 1.查询对象,HQL Criteria 1.hibernate提供的更面向对象的一种查询方式。 准备工作: 1.java中的POJO对象存在...
本网站以xp为Web平台,JSP+Ajax+Servlet+JavaBean+Hibernate为网站实现技术,建立基于MySQL数据库系统的核心动态网页,实现博客网站前台及博客个人维护管理等功能模块。 1、 系统处理的准确性和及时性:系统处理的...