hibernate学习之schema
来源:互联网 发布:如何域名 指向 端口 编辑:程序博客网 时间:2024/05/17 07:50
oracle中,不同的用户,使用不同的schema.所以,如果schema管理不当会出现异常。在hibernate的POJO中,会指定了schema
<?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">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.csc.poimanager.dao.Poi" table="POI" schema="P_BEIJING">
<id name="poiId" type="java.lang.Long">
<column name="POI_ID" precision="10" scale="0" />
<generator class="increment" />
</id>
<property name="cnName" type="java.lang.String">
<column name="CN_NAME" length="1000" />
</property>
</class>
</hibernate-mapping>
上面的代码部分,就指定了Schema.
如果在操作的时候想切换Schema.操作如下:
默认的配置
<property name="hibernate.default_schema">POI_BEIJING</property>
上面的映射文件改为:
<?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">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.csc.poimanager.dao.Poi" table="POI" >
<id name="poiId" type="java.lang.Long">
<column name="POI_ID" precision="10" scale="0" />
<generator class="increment" />
</id>
<property name="cnName" type="java.lang.String">
<column name="CN_NAME" length="1000" />
</property>
</class>
</hibernate-mapping>
在操作的,可以用下面的方法来重新build你的SessionFactory
public static void rebuildSessionFactoryForChangeSchema(String newSchema){
try {
Properties p = configuration.getProperties();
System.out.println("---" + p);
p.put("hibernate.default_schema", newSchema);
sessionFactory = configuration.buildSessionFactory();
System.out.println(" change schema successfully ......... ");
} catch (Exception e) {
System.err
.println("%%%% rebuild session factory failed for changing schema %%%%");
e.printStackTrace();
}
}
如果需要改变Schema,就需要在需要的时候调用此方法
比如在SchemaAction中,
HibernateSessionFactory.rebuildSessionFactoryForChangeSchema("POI_SHANGHAI");
System.out.println(" change successfully ---");
PoiDAO pd = new PoiDAO();
Transaction t =pd.getSession().beginTransaction();
pd.save(new Poi("jsfjksdf"));
t.commit();
那么,原来,是向POI_BEIJING中插入数据的,变成了向POI_SHANGHAI中插入一条数据了。
通过这种方法,可以实现在操作不同的Schema的时候实现切换。
- hibernate学习之schema
- XML学习之 schema
- XML学习之Schema
- XML学习之Xml Schema:一、Xml Schema概述
- JavaWeb学习笔记之xml&DTD&schema
- oracle 学习之:user同Schema
- Schema学习
- hibernate中的schema
- Hibernate学习之(Hibernate 常用工具)
- hibernate学习之Hibernate API
- XML学习之Xml Schema:二、Xml Schema与命名空间
- 绝好的MongoDB学习资料之三. Schema Design
- XML学习之Xml Schema:三、自定义简单类型--facet
- XML学习之Xml Schema:四、自定义简单类型
- XML学习之Xml Schema:五、复杂类型--Attribute
- XML学习之Xml Schema:六、复杂类型--模型组
- XML学习之Xml Schema:七、派生复杂类型--扩展
- XML学习之Xml Schema:八、派生复杂类型--限制
- Jini 技术概述
- [C#]用HttpWebRequest加载证书建立SSL通道时发生异常的解决办法
- 图形验证码的破解
- 函数
- 【转载】zfs源代码概览
- hibernate学习之schema
- No persistence units parsed from {classpath*:META-INF/persistence.xml}问题解决
- 使用jmeter和gcview观察JVM垃圾收集情况和性能
- Membership.FindUsersByName方法模糊查询
- Excel 2007和SharePoint列表进行同步
- [Windows 7 安全新功能] Windows 7 + IE 8,浏览网页不用怕
- 门户网站三列布局(很有用的方法)
- c++
- ASP.NET2.0 ReportViewer会话已过期