คำถามติดแท็ก hibernate

Hibernate เป็นไลบรารีการทำแผนที่วัตถุเชิงสัมพันธ์ (ORM) สำหรับภาษาจาวาที่ช่วยให้นักพัฒนาสามารถใช้โมเดลโดเมนแบบ POJO ในแอปพลิเคชันของพวกเขาในวิธีที่ขยายได้ดีกว่าการทำแผนที่วัตถุ / เชิงสัมพันธ์

10
อะไรคือความแตกต่างระหว่างวิธีการประหยัดที่แตกต่างกันใน Hibernate
Hibernate มีวิธีการหลายวิธีที่จะนำวัตถุของคุณไปไว้ในฐานข้อมูล อะไรคือความแตกต่างระหว่างพวกเขาเมื่อไรที่จะใช้และทำไมไม่มีวิธีการอันชาญฉลาดเพียงวิธีเดียวที่รู้ว่าเมื่อไรที่จะใช้อะไร วิธีการที่ฉันได้ระบุไว้คือ: save() update() saveOrUpdate() saveOrUpdateCopy() merge() persist()

18
วิธีการแก้ไข org.hibernate.LazyInitializationException - ไม่สามารถเริ่มต้นพร็อกซี - ไม่มีเซสชัน
ฉันได้รับข้อยกเว้นต่อไปนี้: Exception in thread "main" org.hibernate.LazyInitializationException: could not initialize proxy - no Session at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:167) at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:215) at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:190) at sei.persistence.wf.entities.Element_$$_jvstc68_47.getNote(Element_$$_jvstc68_47.java) at JSON_to_XML.createBpmnRepresantation(JSON_to_XML.java:139) at JSON_to_XML.main(JSON_to_XML.java:84) เมื่อฉันพยายามโทรจากสายหลักดังต่อไปนี้: Model subProcessModel = getModelByModelGroup(1112); System.out.println(subProcessModel.getElement().getNote()); ฉันใช้getModelByModelGroup(int modelgroupid)วิธีแรกเช่นนี้ public static Model getModelByModelGroup(int modelGroupId, boolean openTransaction) { Session session = SessionFactoryHelper.getSessionFactory().getCurrentSession(); Transaction tx = null; if …

18
เป็นวิธีที่เหมาะสมในการแนบวัตถุเดี่ยวออกใน Hibernate คืออะไร
ฉันมีสถานการณ์ที่ฉันต้องแนบวัตถุเดี่ยวออกไปอีกครั้งเพื่อเข้าสู่โหมดไฮเบอร์เนตแม้ว่าวัตถุที่มีตัวตนเดียวกันอาจมีอยู่แล้วในเซสชันซึ่งจะทำให้เกิดข้อผิดพลาด ตอนนี้ฉันสามารถทำหนึ่งในสองสิ่งนี้ getHibernateTemplate().update( obj ) มันจะทำงานถ้าหากวัตถุนั้นไม่มีอยู่ในเซสชั่นไฮเบอร์เนต มีการโยนข้อยกเว้นที่ระบุวัตถุที่มีตัวระบุที่กำหนดอยู่แล้วในเซสชันเมื่อฉันต้องการในภายหลัง getHibernateTemplate().merge( obj ) มันจะทำงานถ้าวัตถุนั้นมีอยู่ในเซสชั่นไฮเบอร์เนต มีการโยนข้อยกเว้นเมื่อฉันต้องการให้วัตถุอยู่ในเซสชันในภายหลังหากฉันใช้สิ่งนี้ จากสถานการณ์ทั้งสองนี้ฉันจะแนบเซสชันกับวัตถุโดยทั่วไปได้อย่างไร ฉันไม่ต้องการใช้ข้อยกเว้นเพื่อควบคุมการไหลของโซลูชันนี้เนื่องจากต้องมีวิธีแก้ปัญหาที่สวยงามกว่า ...

8
JPA orphanRemoval = true แตกต่างจากส่วนคำสั่ง ON DELETE CASCADE DML อย่างไร
ฉันสับสนเล็กน้อยเกี่ยวกับorphanRemovalแอตทริบิวต์JPA 2.0 ฉันคิดว่าฉันสามารถเห็นมันเป็นสิ่งจำเป็นเมื่อฉันใช้เครื่องมือการสร้างฐานข้อมูล JPA ของผู้ให้บริการเพื่อสร้าง DDL ฐานข้อมูลพื้นฐานเพื่อให้มีON DELETE CASCADEความสัมพันธ์เฉพาะ อย่างไรก็ตามถ้าฐานข้อมูลมีอยู่และมีON DELETE CASCADEความสัมพันธ์กันอยู่แล้วสิ่งนี้ไม่เพียงพอที่จะลดการลบอย่างเหมาะสมหรือไม่? สิ่งที่orphanRemovalนอกเหนือไปจากนี้? ไชโย

5
อะไรคือความแตกต่างระหว่าง JOIN และ JOIN FETCH เมื่อใช้ JPA และ Hibernate
โปรดช่วยฉันเข้าใจว่าจะใช้ JOIN ปกติที่ไหนและที่ไหน FETCH เข้าร่วม ตัวอย่างเช่นหากเรามีสองข้อความค้นหาเหล่านี้ FROM Employee emp JOIN emp.department dep และ FROM Employee emp JOIN FETCH emp.department dep มีความแตกต่างระหว่างพวกเขาหรือไม่? ถ้าใช่จะใช้อันไหนดี?
183 java  hibernate  join  hql  fetch 

8
วิธีสแตติกแบบซิงโครนัสทำงานได้อย่างไรใน Java และฉันสามารถใช้สำหรับการโหลดรายการไฮเบอร์เนตได้อย่างไร
ถ้าฉันมีคลาส util ด้วยวิธีการคงที่ที่จะเรียกใช้ฟังก์ชันไฮเบอร์เนตเพื่อให้เข้าถึงข้อมูลขั้นพื้นฐาน ฉันสงสัยว่าการทำวิธีsynchronizedนี้เป็นวิธีการที่ถูกต้องหรือไม่ ฉันต้องการสิ่งนี้เพื่อป้องกันการเข้าถึงข้อมูลไปยังอินสแตนซ์ฐานข้อมูลเดียวกัน อย่างไรก็ตามตอนนี้ฉันแน่ใจว่ารหัสต่อไปนี้จะป้องกันไม่ให้getObjectByIdถูกเรียกสำหรับคลาสทั้งหมดเมื่อถูกเรียกโดยคลาสที่เฉพาะเจาะจง public class Utils { public static synchronized Object getObjectById (Class objclass, Long id) { // call hibernate class Session session = new Configuration().configure().buildSessionFactory().openSession(); Object obj = session.load(objclass, id); session.close(); return obj; } // other static methods }


6
บางคนสามารถอธิบายแมปโดย JPA และไฮเบอร์เนต?
ฉันยังใหม่ต่อการจำศีลและจำเป็นต้องใช้ความสัมพันธ์แบบหนึ่งต่อหลายและแบบหนึ่งต่อหนึ่ง มันเป็นความสัมพันธ์แบบสองทิศทางในวัตถุของฉันเพื่อให้ฉันสามารถข้ามจากทิศทางใดก็ได้ mappedByเป็นวิธีที่แนะนำให้ไปเกี่ยวกับมันอย่างไรก็ตามฉันไม่เข้าใจ บางคนสามารถอธิบายได้: วิธีที่แนะนำให้ใช้คืออะไร? มันแก้จุดประสงค์อะไร? เพื่อเป็นตัวอย่างของฉันนี่คือชั้นเรียนของฉันพร้อมคำอธิบายประกอบ: Airline เป็นเจ้าของหลายคน AirlineFlights หลายคน AirlineFlightsเป็นของONE Airline สายการบิน : @Entity @Table(name="Airline") public class Airline { private Integer idAirline; private String name; private String code; private String aliasName; private Set<AirlineFlight> airlineFlights = new HashSet<AirlineFlight>(0); public Airline(){} public Airline(String name, String code, String aliasName, Set<AirlineFlight> flights) …

11
ไฮเบอร์เนตกับ JPA เทียบกับ JDO ข้อดีและข้อเสียของแต่ละ? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันคุ้นเคยกับ ORM เป็นแนวคิดและฉันใช้ nHibernate หลายปีที่ผ่านมาสำหรับโครงการ. NET อย่างไรก็ตามฉันไม่ได้ติดตามหัวข้อ ORM ใน Java และไม่ได้มีโอกาสใช้เครื่องมือเหล่านี้ แต่ตอนนี้ฉันอาจมีโอกาสเริ่มใช้เครื่องมือ ORM บางอย่างสำหรับหนึ่งในแอปพลิเคชันของเราในความพยายามที่จะย้ายออกจากชุดบริการเว็บดั้งเดิม ฉันมีเวลายากที่จะบอกความแตกต่างระหว่างข้อกำหนด JPA สิ่งที่คุณจะได้รับจากห้องสมุด Hibernate และสิ่งที่ JDO มีให้ ดังนั้นฉันเข้าใจว่าคำถามนี้เป็นบิตปลายเปิด แต่ฉันหวังว่าจะได้รับความคิดเห็นบางอย่างเกี่ยวกับ: ข้อดีและข้อเสียของแต่ละข้อคืออะไร? คุณต้องการแนะนำโครงการใหม่แบบใด มีเงื่อนไขบางประการหรือไม่ที่จะใช้กรอบหนึ่งกับอีกกรอบหนึ่ง
174 java  hibernate  orm  jpa  jdo 

4
วิธีเปลี่ยนชื่อฟิลด์ใน JSON โดยใช้ Jackson
ฉันใช้แจ็คสันในการแปลงวัตถุของฉันเป็นเจสัน วัตถุมี 2 ฟิลด์: @Entity public class City { @id Long id; String name; public String getName() { return name; } public void setName(String name){ this.name = name; } public Long getId() { return id; } public void setName(Long id){ this.id = id; } } เนื่องจากฉันต้องการใช้คุณลักษณะนี้กับ jQuery auto complete ฉันต้องการให้ …

6
"ด้านผกผันของสมาคม" ใน JPA OneToMany / ManyToOne แบบสองทิศทางคืออะไร
ในส่วนตัวอย่างของการ@OneToManyอ้างอิงคำอธิบายประกอบ JPA : ตัวอย่าง 1-59 @OneToMany - ระดับลูกค้าพร้อม Generics @Entity public class Customer implements Serializable { ... @OneToMany(cascade=ALL, mappedBy="customer") public Set<Order> getOrders() { return orders; } ... } ตัวอย่าง 1-60 @ManyToOne - คลาสคำสั่งซื้อกับ Generics @Entity public class Order implements Serializable { ... @ManyToOne @JoinColumn(name="CUST_ID", nullable=false) public Customer getCustomer() { return …


10
วิธีแปลงพร็อกซีไฮเบอร์เนตเป็นวัตถุเอนทิตีจริง
ในระหว่างการไฮเบอร์เนตSessionฉันกำลังโหลดวัตถุบางอย่างและบางส่วนถูกโหลดเป็นพร็อกซีเนื่องจากการโหลดแบบสันหลังยาว ไม่เป็นไรและฉันไม่ต้องการปิดการโหลดแบบขี้เกียจ แต่ต่อมาฉันต้องส่งวัตถุบางอย่าง (จริง ๆ แล้ววัตถุหนึ่งชิ้น) ไปยังไคลเอนต์ GWT ผ่าน RPC และมันเกิดขึ้นว่าวัตถุรูปธรรมนี้เป็นตัวแทน ดังนั้นฉันต้องเปลี่ยนมันเป็นวัตถุจริง ฉันไม่พบวิธีเช่น "materialize" ใน Hibernate ฉันจะเปลี่ยนบางสิ่งบางอย่างจากพร็อกซีไปยัง reals รู้คลาสและ ID ของพวกเขาได้อย่างไร ในขณะนี้ทางออกเดียวที่ฉันเห็นคือการขับไล่วัตถุนั้นออกจากแคชของไฮเบอร์เนตและโหลดใหม่ แต่มันก็แย่มากด้วยเหตุผลหลายประการ

8
Apache Commons เท่ากับ / hashCode builder [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันอยากจะรู้ว่าสิ่งที่ผู้คนที่นี่คิดเกี่ยวกับการใช้ org.apache.commons.lang.builder EqualsBuilder/ HashCodeBuilder สำหรับการดำเนินการequals/ hashCode? มันจะเป็นการปฏิบัติที่ดีกว่าการเขียนของคุณเอง? เล่นกับไฮเบอร์เนตได้ดีหรือไม่? ความคิดเห็นของคุณคืออะไร

4
javax.transaction.Transactional vs org.springframework.transaction.annotation.Transactional
ฉันไม่เข้าใจความแตกต่างที่แท้จริงระหว่างคำอธิบายประกอบjavax.transaction.Transactionalและorg.springframework.transaction.annotation.Transactionalอะไร คือorg.springframework.transaction.annotation.Transactionalการขยายjavax.transaction.Transactionalหรือพวกเขามีความหมายที่แตกต่างกันโดยสิ้นเชิง? เมื่อใดควรใช้แต่ละรายการ ฤดูใบไม้ผลิ@Transactinalในบริการชั้นและjavaxใน DAO? ขอบคุณสำหรับคำตอบ.

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.