推薦你只是在開發階段采用這樣的方式載入
文件
net/netbauds/catalina/IHibernateCachableFileLoad
這個文件可以在不同的web應用中使用而不用作任何修改
package bauds
import org
public interface IHibernateCachableFileLoad {
public void addMappings(Configuration conf);
}
net/netbauds/catalina/HibernateSessionFactory
使用靜態方法HibernateSessionFactory
這個文件也可以在不同的應用中使用而不加任何修改
package bauds
import org
import org
// 單態的 sessionFactory
public class HibernateSessionFactory {
private static SessionFactory sessionFactory;
public static SessionFactory getSessionFactory() {
// 不要從 JNDI中獲取SessionFactory
if (sessionFactory == null ) {
Configuration conf = new Configuration();
try {
Class klass = Class
IHibernateCachableFileLoad hibConf = (IHibernateCachableFileLoad) klass
hibConf
} catch (ClassNotFoundException e) {
// NOOP
} catch (InstantiationException e) {
// NOOP
} catch (IllegalAccessException e) {
// NOOP
}
Configuration confdone = nfigure();
if (confdone != null ) {
// Use default hibernate
sessionFactory = confdone
}
}
return sessionFactory;
}
}
config/HibernateCachableFileLoad
這個文件是隨web應用的不同而不同的
你需要修改如下部分
* 將你所有的Hibernate映射配置文件(*
package config;
import bauds
import org
// This class is webapp specific and allow loading of mapping via
// addCachableFile();
public class HibernateCachableFileLoad implements IHibernateCachableFileLoad {
public void addMappings(Configuration conf) {
doFile(conf
doFile(conf
}
private void doFile(Configuration conf
String path = null ;
URL u = this
if (u != null ) {
path = u
if (path != null )
conf = conf
}
if (path == null || conf == null )
System
}
}
hibernate
這將使我們標准的hibernate
如果你使用的是老版本的dtd
An alternative way maybe to programatically configure the connection
你需要作如下修改
* 將 java:comp/env/jdbc/ConfigureMeDS 修改為你自己的數據庫連接信息
那麼現在
PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.datasource">java:comp/env/jdbc/ConfigureMeDS< SPAN>property>
< SPAN>session-factory>
< SPAN>hibernate-configuration>
如果你使用的Hibernate版本需要在hibernate.cfg.xml中至少有一個mapping元素,那麼你可能需要用到下面的兩個文件,否則,如上就可以了。Tw.WinGwiT.Com
uk/mydomain/Dummy.hbm.xml
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"-mapping-3.0.dtd">
<hibernate-mapping>
<class name="uk.mydomain.Dummy" table="dummy">
<id name="id" type="long" column="id">
<generator class="native" />
< SPAN>id>
< SPAN>class>
< SPAN>hibernate-mapping>
uk/mydomain/Dummy.java
package uk.mydomain;
public class Dummy {
private long id;
private long getId() {
return id;
}
private void setId(long id) {
this.id = id;
}
}
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28058.html