Hibernate能够实现动态建表的印射吗 最近因为业务需求,需要对同一张数据表进行分割,比如user表,要分为user1,user2,user3...N张表,访问的路由规则也可以实现,但是因为系统ORM框架采用Hibernate,不知道能不能实现动态印射。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 举一个例子,以车为例:<hibernate-mapping> <class name="com.honglin.Car" table="car_old" entity-name="oldOrder"> <id name="cId" type="long"> <generator class="increment"/> </id> <property name="carName" type="String"/> </class> <class name="com.honglin.Car" table="car_new" entity-name="newOrder"> <id name="cId" type="long"> <generator class="increment"/> </id> <property name="carName" type="String"/> </class></hibernate-mapping> 我不是很明白你的意思,是动态模式吗?不知道你用的是不是Hibernate 3,Hibernate 3有动态模式表代码:CREATE TABLE user ( id INT(11) NOT NULL auto_increment PRIMARY KEY, name VARCHAR(100) NOT NULL default '', age INT);xml配置,不需要定义java类,可以直接映射到<class>标签上,用entity-name属性!!<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class entity-name="onlyfun.caterpillar.DynamicUserModel" table="user"> <id name="id" column="id" type="java.lang.Integer"> <generator class="native"/> </id> <property name="name" column="name" type="java.lang.String"/> <property name="age" column="age" type="java.lang.Integer"/> </class> </hibernate-mapping>entity-name设定的值,再下面使用java代码:保存Map userMap = new HashMap();userMap.put("name", "caterpillar");userMap.put("age", new Integer(30)); Session session = sessionFactory.openSession();Transaction tx = session.beginTransaction();session.save("onlyfun.caterpillar.DynamicUserModel", userMap);tx.commit(); session.close();载入资料Session session = sessionFactory.openSession();Map userMap = (Map) session.load("onlyfun.caterpillar.DynamicUserModel", new Integer(1));System.out.println(userMap.get("name"));System.out.println(userMap.get("age"));session.close(); 楼主 我加了entity-name的哦,看清楚点哦,不只是name 你google一下一个持久化类对应多张表就知道我那样行不行了 请教一个spring数据源的问题 求大神帮助啊。为什么访问不到srvlet的out.println的内容啊。 J2EE。本地能获取到session值,放到网络上就不行了,同样一段代码。 getHibernateTemplate().find()传值问题 新手入门问题---面向对象思想吃不透 spring的小问题,大家帮帮忙,谢谢了 hibernate2.0升级为hibernate3.0问题,在线等待!!!! myeclipse中如何配置weblogic???使它能用 编译出错,提示没有找到包 jenkins构建任务失败 用正则表达式截取字符串 <s:select>如何设定默认值
<hibernate-mapping>
<class name="com.honglin.Car" table="car_old" entity-name="oldOrder">
<id name="cId" type="long">
<generator class="increment"/>
</id>
<property name="carName" type="String"/>
</class> <class name="com.honglin.Car" table="car_new" entity-name="newOrder">
<id name="cId" type="long">
<generator class="increment"/>
</id>
<property name="carName" type="String"/>
</class>
</hibernate-mapping>
表代码:CREATE TABLE user (
id INT(11) NOT NULL auto_increment PRIMARY KEY,
name VARCHAR(100) NOT NULL default '',
age INT
);xml配置,不需要定义java类,可以直接映射到<class>标签上,用entity-name属性!!<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping
PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping>
<class entity-name="onlyfun.caterpillar.DynamicUserModel"
table="user">
<id name="id" column="id" type="java.lang.Integer">
<generator class="native"/>
</id>
<property name="name"
column="name"
type="java.lang.String"/>
<property name="age"
column="age"
type="java.lang.Integer"/>
</class>
</hibernate-mapping>entity-name设定的值,再下面使用
java代码:保存
Map userMap = new HashMap();
userMap.put("name", "caterpillar");
userMap.put("age", new Integer(30));
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
session.save("onlyfun.caterpillar.DynamicUserModel", userMap);
tx.commit();
session.close();载入资料Session session = sessionFactory.openSession();
Map userMap = (Map) session.load("onlyfun.caterpillar.DynamicUserModel", new Integer(1));
System.out.println(userMap.get("name"));
System.out.println(userMap.get("age"));
session.close();