บทความ

กำลังแสดงโพสต์ที่มีป้ายกำกับ Hibernate

Hibernate Session บน Weblogic กับ Tomcat มันต่างกันยังไง

บทความเกี่ยวกับ : Hibernate Session บน Weblogic กับ Tomcat มันต่างกันยังไง งานเข้าเต็มๆ ไม่รู้ว่าผมพลาดอะไรกับความรู้เท่าไม่ถึงการณ์ ไม่รู้อารมณ์ใหนอยู่ๆ ก็รื้องาน Project เก่าๆ มา Tuning เล่น พอดีงานที่ทำ Dev บน Tomcat  ส่วน Production เป็น Web Logic ลอง Run บน Dev อัดยิงเข้าไปหนักๆ ผลปรากฏว่าเดี้ยง ก็แปลกใจ ว่ามัน On Production ไปตั้งนานไม่เคยเห็นมันจะเป็นอะไร เลยตัดสินใจมาไล่ code ดูบน Dev พบว่าก็ Close Session ทุกครั้ง ก็ไม่น่าจะผิดอะไร แล้วทำไมมันถึงเดี้ยงได้ ก็เลยลองนั่งไล่ Close  statement , resultset ด้วยเผื่อมันจะเกี่ยว ผลปรากฏว่า หายครับแบ งงๆ หุหุ ว่าแล้วก็ deploy ซะ เท่านั้นแหละ บน Prod เดี้ยงทันทีไล่อยู่นานจึงรู้ว่า เพราะ การ close statement ทำให้ result set ถูก close ไปด้วย T_T ... แต่บน tocat ไม่เป็น 555+ งานเข้าสิครับ สุดท้ายสรุปได้ว่า - ที่บน Prod Weblogic มันไม่เดี้ยง เพราะ การ close Session มันจะ Close resource ทั้งหมด มันก็ดีตรงปลอดภัยดี แต่ถ้าเราเผลอไป Close ก่อนแล้วเอา result set ไปใช้ทีหลังก็จะเดี้ยงแบบนีแ้หละ - บน Dev Tom...

Hibernate Relation การ เขีียน Mapping Relation แบบ Bidirectional ด้วย Annotation

บทความเกี่ยวกับ : Hibernate Relation การ เขีียน Mapping Relation แบบ Bidirectional ด้วย Annotation ผมจะยกตัวอย่าง Mapping Class ในการเขียน Annotations สำหรับ Relation นะครับ ยกตัวอย่างการเขียนแบบง่ายๆที่สุดแต่ผมก็ใช้อยู่แค่นี้จริงๆครับนั่นคือ Relation แบบ One to Many  ง่ายๆ ก็เพื่อให้ Class นึงสามารถ Get Object ได้ ส่วนอีก Class สามารถ get List ได้ ตามตัวอย่างเลยครับ @Entity public class Category {     @OneToMany(mappedBy="product")     public Set<Product> getProduct() {     ... } @Entity public class Product {     @ManyToOne     @JoinColumn(name="cate_fk")     public Category getCategory() {     ... }       ตามนี้เลยครับจะเห็นว่าใช้ง่ายๆ แค่นี้ก็หากินได้แล้วครับผม

Hibernate Criteria การใช้งาน Criteria เพื่อช่วยในการ Query ให้ง่ายขึ้น

บทความเกี่ยวกับ : Hibernate Criteria การใช้งาน Criteria เพื่อช่วยในการ Query ให้ง่ายขึ้น Criteria เป็นตัวช่วยสร้าง Query ชั้นดีเลยทีเีดียวครับ สามารถแทรก Condition แทรก Order  ได้ไม่จำกัดด้วยการใส่ Restrictions ลงไป ลองดูตัวอย่างการใช้งานกันเลย Criteria cri = session.createCriteria(MyMappingClass.class); cri.setMaxResults(50); List myObjList = cri.list(); แบบง่ายสุดเพียงเท่านี้ก็ได้ List ของ Object ออกมาแล้วครับ หรือถ้าจะแทรก Condition ก็ง่ายๆ ตามนี้เลย List myObjList = session.createCriteria(MyMappingClass.class)     .add( Restrictions.like("fname1", "some value%") )     .add( Restrictions.between("money", min, max) )     .list(); ลองใส่ Order by เข้าไปก็ไม่ใช่เรื่องยาก List myDataList = session.createCriteria(MyMappingClass.class)     .add( Restrictions.like("fname", "F%")     .addOrder( Order.asc("fname") )     .addOrder( Order.desc("fname2") )  ...

ตัวอย่าง Model พร้อมการใช้งาน Hibernate กับ Spring Framework

บทความเกี่ยวกับ : ตัวอย่าง Model พร้อมการใช้งาน Hibernate กับ Spring Framework เป็น Model ง่ายๆ นะครับที่ผมทำขึ้นมาเพื่อทดสอบการใช้งาน Hibernate เอาง่ายๆ ให้ดูแล้วเข้าใจก็พอ ไม่มีอะไร package com.en.model; import java.io.Serializable; import java.util.List; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import com.en.dto.MasterDto; import com.en.sap.MasterSAP; import com.en.ws.client.WebServiceClientMaster; public class MasterModel  extends HibernateDaoSupport implements Serializable{     private static final long serialVersionUID = 1L;     protected WebServiceClientMaster wsClient;     protected MasterSAP sap;     public void insertData(MasterDto dto){}     public void deleteData(MasterDto dto){}     public void updateData(MasterDto dto){}     public MasterDto getDataObj(Serializable pk){return null;}   ...

ตัวอย่าง Hibernate Mapping Class Annotation

บทความเกี่ยวกับ : ตัวอย่าง Hibernate Mapping Class Annotation วันนี้ไม่มีอะไรจะทำตัวอย่าง Hibernate Mapping Class  Annotation มาให้ดูกันมันอาจเป็นเรื่องพื้นๆ สำหรับคนที่ทำ Hibernate อยู่แล้วแต่มันอาจจะมีประโยชน์สำหรับคนที่ไม่รู้ก็เป็นได้ package com.en.hibernate; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table(name = "example") // ชื่อ Table public class Example implements java.io.Serializable {     private static final long serialVersionUID = -169364292963401081L;     @Id     @Column(name = "code_id") // ชื่อ Field     private Integer codeId;     @Column(name = "tdesc")     private String tdesc;     @Column(name = "edesc")     private String edesc;     public Integer getCodeId() {         return codeId; ...

รู้จักกับ Hibernate

บทความเกี่ยวกับ : รู้จักกับ Hibernate Developer อย่างผมเป็นพวกที่ชอบสะสมอาวุธ เครื่องไม้เครื่องมือต่างๆ ใส่เป้ไว้พร้อมรบตลอด อาวุธดีมีชัยไปกว่าครึ่ง รบร้อยครั้ง ชนะร้อยครั้ง เห่อๆ พูดถึง Hibernate  แล้ว นักรบในยุคเก่าๆ จะรู้จัก Entity Bean ของ EJB มันก็คือ อะไรในทำนองเดียวๆ กันนั่นแหละเพียงแต่ว่า Hibernate เป็นอาวุธที่ลดขนาดลงมา เพื่อใช้งานในส่วนที่จำเป็นต้องใช้จริงๆ (ผมคิดว่าอย่างนั้นนะ) ในฟากฝั่งของ Database Layer การพัฒนาด้วย ภาษาที่เป็น OOP มักจะมองหา OR / Mapping ที่จะทำให้ พวก Table ต่างๆกลายร่างมาเป็น Object ให้ใช้งานได้ง่ายๆและสะดวกสบาย นั่นละ คือ Hibernate  ไว้จะเล่าต่ออีกเยอะ  พักยกไว้แค่นี้ก่อนนะ