hibernate在實現實體映射時,DB無需強行指定。部署時會較對DB戶名和密碼,根據用戶名以訪問的表完成實體映射。如果一個帳號可以訪問一個數據庫的下多個表,以oracle為例用戶user1下面有表table1 ,user2下面也有table1,且user1有user2的所有權限,那么部署時可能就會搞錯table,出於安全hiberante在配置時設置默認的schema較為安全。EJB也是同理,建立orm.xml。
<?xml version="1.0" encoding="UTF-8"?> <entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm http://java.sum.com/xml/ns/persistence/orm_1_0.xsd" version="1.0"> <persistence-unit-metadata> <persistence-unit-defaults> <schema>user1</schema> </persistence-unit-defaults> </persistence-unit-metadata> </entity-mappings>
hibernate.cfg.xml
<property name="hibernate.default_schema">user1</property>
或者在映射文件中指定
<hibernate-mapping> <class name="one.to.many.Person" table="one_to_many_person" catalog="user1"> </hibernate-mapping>
以上內容摘自:http://rking0228.iteye.com/blog/777486
在我的應用中,大部分數據要從當前庫selfcur中查詢,但是有些交易數據因為會每天遷移,所以統計報表時從 歷史庫selfhis中查詢
我這里采用的是 注解的形式處理.
@Entity @Table(name = "v_biz_trans",schema="selfhis") public class TransDate implements java.io.Serializable { }
比較全面的介紹Hibernate hql sql的使用.
http://blog.csdn.net/jspamd/article/details/11580669