Hibernate table schema 的設置與應用


 

  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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM