Hibernate架構對查詢功能最佳化(1)

來源:互聯網
上載者:User

標籤:init   ber   lazy   對應檔   sys   示範   sql語句   效能   oid   

  • 消極式載入

1. 消極式載入先擷取到代理對象,當真正使用到該對象中的屬性的時候,才會發送SQL語句,是Hibernate架構提升效能的方式

2. 類層級的消極式載入

  * Session對象的load方法預設就是消極式載入

  * Customer c = session.load(Customer.class, 1L);沒有發送SQL語句,當使用該對象   的屬性時,才發送SQL語句

  * 使類層級的消極式載入失效

    * 在對象對應檔中<class>標籤上配置lazy=”false”

    * Hibernate.initialize(Object proxy);

 

/**     * 示範類層級的消極式載入     * 需要使用session.load()方法 ,它預設情況下使用消極式載入     */    @Test    public void run1() {        //先做一個比較啊        Session session = HibernateUtils.getCurrentSession();        Transaction tx = session.beginTransaction();        Customer customer = session.get(Customer.class, 1L);        System.out.println("===============================");        System.out.println(customer.getCust_name());        tx.commit();    }        /**     * 使用消極式載入     */    @Test    public void run2() {        Session session = HibernateUtils.getCurrentSession();        Transaction tx = session.beginTransaction();        Customer customer = session.load(Customer.class, 1L);        System.out.println("===============================");        System.out.println(customer.getCust_name());        tx.commit();    }

/**     * 將消極式載入失效的方式     * 在<class>標籤上配置lazy=”false”     * Hibernate.initialize(Object proxy);     */    @Test    public void run3() {        Session session = HibernateUtils.getCurrentSession();        Transaction tx = session.beginTransaction();        Customer customer = session.load(Customer.class, 1L);        //把customer對象初始化        Hibernate.initialize(customer);        System.out.println("===============================");        System.out.println(customer.getCust_name());        tx.commit();    }

  3.關聯層級的消極式載入

    /**     * 關聯層級的消極式載入     * 查詢某個客戶,當查詢某個客戶下的連絡人是否消極式載入     * 預設情況下消極式載入     */    @Test    public void run4() {        Session session = HibernateUtils.getCurrentSession();        Transaction tx = session.beginTransaction();        Customer customer = session.get(Customer.class, 1L);        System.out.println("============================");        System.out.println(customer.getLinkmans().size());        tx.commit();    }

 

 

Hibernate架構對查詢功能最佳化(1)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.