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

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

27
เกิดข้อผิดพลาดในการสร้าง bean ด้วยชื่อ 'entityManagerFactory' ที่กำหนดในทรัพยากรพา ธ คลาส: การเรียกใช้เมธอด init ล้มเหลว
เมื่อฉันรวบรวมโครงการฤดูใบไม้ผลิของฉันฉันได้รับข้อผิดพลาดต่อไปนี้ เกิดข้อผิดพลาดในการสร้าง bean ด้วยชื่อ 'entityManagerFactory' ที่กำหนดไว้ในทรัพยากรพา ธ คลาส [org / springframework / boot / autoconfigure / orm / jpa / HibernateJpaAutoConfiguration.class]: การเรียกใช้เมธอด init ล้มเหลว ฉันใช้ STS Eclipse และ MySql Database สตริงการเชื่อมต่อของฉันApplication.Propertiesคือ spring.datasource.url=jdbc:mysql://localhost:3306/stgdb spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.jpa.hibernate.ddl-auto=update ข้อผิดพลาดโดยละเอียดได้รับด้านล่าง ================================================= 2016-10-15 15:34:38.875[0;39m [31mERROR[0;39m [35m3700[0;39m [2m---[0;39m [2m[ main][0;39m [36mo.s.boot.SpringApplication [0;39m [2m:[0;39m Application startup …

9
ปิดใช้งานการกำหนดค่าอัตโนมัติที่เกี่ยวข้องกับฐานข้อมูลทั้งหมดใน Spring Boot
ฉันใช้ Spring Boot เพื่อพัฒนาแอปพลิเคชั่นสองตัวตัวหนึ่งทำหน้าที่เป็นเซิร์ฟเวอร์และอีกแอปหนึ่งเป็นแอปไคลเอนต์ อย่างไรก็ตามทั้งสองเป็นแอปเดียวกันที่ทำงานแตกต่างกันไปตามโปรไฟล์ที่ใช้งานอยู่ ฉันใช้คุณสมบัติการกำหนดค่าอัตโนมัติของ Spring Boot เพื่อกำหนดค่าแอปพลิเคชันของฉัน ฉันต้องการปิดการใช้งานฐานข้อมูลทั้งหมดที่เกี่ยวข้องกับการกำหนดค่าอัตโนมัติในแอปไคลเอนต์เนื่องจากไม่จำเป็นต้องเชื่อมต่อฐานข้อมูล แอปพลิเคชันไม่ควรพยายามสร้างการเชื่อมต่อกับฐานข้อมูลหรือพยายามใช้คุณสมบัติ Spring Data หรือ Hibernate การเปิดหรือปิดการกำหนดค่าฐานข้อมูลอัตโนมัติควรเป็นไปตามเงื่อนไขและขึ้นอยู่กับโปรไฟล์ที่ใช้งานอยู่ของแอป ฉันสามารถทำได้โดยการสร้างไฟล์ application.properties ที่แตกต่างกันสองไฟล์สำหรับโปรไฟล์ที่เกี่ยวข้องหรือไม่ ฉันพยายามเพิ่มสิ่งนี้ลงในไฟล์คุณสมบัติของฉัน spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration\ org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration\ org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration\ org.springframework.boot.autoconfigure.data.web.SpringDataWebAutoConfiguration แต่แอปพลิเคชันยังคงพยายามเชื่อมต่อกับฐานข้อมูลเมื่อเริ่มต้น การยกเว้นเหล่านั้นเพียงพอสำหรับการบรรลุข้อกำหนดของฉันหรือไม่


15
JPA: อะไรคือรูปแบบที่เหมาะสมสำหรับการทำซ้ำชุดผลลัพธ์ขนาดใหญ่?
สมมติว่าฉันมีตารางที่มีแถวเป็นล้าน การใช้ JPA วิธีใดเป็นวิธีที่เหมาะสมในการวนซ้ำแบบสอบถามกับตารางนั้นเช่นฉันไม่มีรายการในหน่วยความจำทั้งหมดที่มีวัตถุนับล้าน ตัวอย่างเช่นฉันสงสัยว่าสิ่งต่อไปนี้จะระเบิดหากตารางมีขนาดใหญ่: List<Model> models = entityManager().createQuery("from Model m", Model.class).getResultList(); for (Model model : models) { System.out.println(model.getId()); } การแบ่งหน้า (การวนซ้ำและการอัปเดตsetFirstResult()/ setMaxResult()) ด้วยตนเองเป็นทางออกที่ดีที่สุดหรือไม่? แก้ไข : กรณีการใช้งานหลักที่ฉันกำหนดเป้าหมายเป็นงานแบตช์ประเภทหนึ่ง ถ้าใช้เวลานานจะดีกว่า ไม่มีเว็บไคลเอ็นต์ที่เกี่ยวข้อง ฉันแค่ต้อง "ทำอะไรบางอย่าง" สำหรับแต่ละแถวทีละหนึ่ง (หรือ N ขนาดเล็ก) ฉันแค่พยายามหลีกเลี่ยงไม่ให้พวกเขาทั้งหมดอยู่ในความทรงจำในเวลาเดียวกัน
114 java  hibernate  jpa 

11
คุณกำหนดค่าการบันทึกใน Hibernate 4 เพื่อใช้ SLF4J ได้อย่างไร
ใช้ไฮเบอร์เนต 3.x slf4jสำหรับการบันทึก ไฮเบอร์เนตใช้ 4.xJBoss การเข้าสู่ระบบ. ฉันกำลังเขียนแอปพลิเคชันแบบสแตนด์อโลนซึ่งใช้ Hibernate 4 และ SLF4J สำหรับการบันทึก ฉันจะกำหนดค่า Hibernate เพื่อเข้าสู่ SLF4J ได้อย่างไร หากไม่สามารถทำได้ฉันจะกำหนดค่าการบันทึกของไฮเบอร์เนตได้อย่างไร ส่วนคู่มือ Hibernate 4.1 เกี่ยวกับการบันทึกเริ่มต้นด้วยคำเตือนว่าเป็น ... ล้าสมัยโดยสิ้นเชิง Hibernate ใช้ JBoss Logging ตั้งแต่ 4.0 สิ่งนี้จะได้รับการจัดทำเป็นเอกสารเมื่อเราย้ายเนื้อหานี้ไปยังคู่มือสำหรับนักพัฒนา ... พูดถึง SLF4J ต่อไปก็ไม่มีประโยชน์ ทั้งคู่มือเริ่มต้นใช้งานหรือคู่มือสำหรับนักพัฒนาซอฟต์แวร์ไม่ได้พูดถึงการบันทึกเลย หรือไม่คำแนะนำการโยกย้าย ฉันได้ค้นหาเอกสารเกี่ยวกับ jboss-logging แล้ว แต่ไม่พบเลย หน้า GitHub จะเงียบและ JBoss ของหน้าโครงการชุมชนไม่ได้แม้กระทั่งรายการ JBoss การเข้าสู่ระบบ ฉันสงสัยว่าตัวติดตามข้อบกพร่องของโครงการอาจมีปัญหาใด ๆ …

7
ปัญหาไฮเบอร์เนต -“ การใช้ @OneToMany หรือ @ManyToMany กำหนดเป้าหมายคลาสที่ไม่ได้แมป”
ฉันพบว่าเท้าของฉันมีคำอธิบายประกอบไฮเบอร์เนตและฉันประสบปัญหาฉันหวังว่าจะมีคนช่วยได้ ฉันมี 2 เอนทิตีมาตราและขอบเขต ส่วนนี้มีสมาชิกคลาส List ดังนั้นความสัมพันธ์แบบหนึ่งต่อกลุ่ม เมื่อฉันเรียกใช้การทดสอบหน่วยฉันได้รับข้อยกเว้นนี้: การใช้ @OneToMany หรือ @ManyToMany กำหนดเป้าหมายคลาสที่ไม่ได้แมป: com.xxx.domain.Section.scopeTopic [com.xxx.domain.ScopeTopic] ฉันจะถือว่าข้อผิดพลาดหมายความว่าเอนทิตี ScopeTopic ของฉันไม่ได้แมปกับตาราง? ฉันไม่เห็นว่าฉันทำผิด คลาสเอนทิตีมีดังนี้ @Entity public class Section { private Long id; private List<ScopeTopic> scopeTopics; public Section() {} @Id public Long getId() { return id; } public void setId(Long id) { this.id = id; …
114 hibernate  jpa 

30
ข้อผิดพลาดไฮเบอร์เนต: org.hibernate.NonUniqueObjectException: อ็อบเจ็กต์อื่นที่มีค่าตัวระบุเดียวกันถูกเชื่อมโยงกับเซสชันแล้ว
ฉันมีวัตถุผู้ใช้สองรายการและในขณะที่ฉันพยายามบันทึกวัตถุโดยใช้ session.save(userObj); ฉันได้รับข้อผิดพลาดต่อไปนี้: Caused by: org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [com.pojo.rtrequests.User#com.pojo.rtrequests.User@d079b40b] ฉันกำลังสร้างเซสชันโดยใช้ไฟล์ BaseHibernateDAO dao = new BaseHibernateDAO(); rtsession = dao.getSession(userData.getRegion(), BaseHibernateDAO.RTREQUESTS_DATABASE_NAME); rttrans = rtsession.beginTransaction(); rttrans.begin(); rtsession.save(userObj1); rtsession.save(userObj2); rtsession.flush(); rttrans.commit(); rtsession.close(); // in finally block ฉันยังลองทำsession.clear()ก่อนที่จะประหยัด แต่ยังไม่มีโชค นี่เป็นครั้งแรกที่ฉันได้รับวัตถุเซสชันเมื่อมีคำขอของผู้ใช้มาดังนั้นฉันจึงได้รับว่าเหตุใดจึงบอกว่าวัตถุนั้นมีอยู่ในเซสชัน ข้อเสนอแนะใด ๆ ?
114 java  hibernate  orm 

14
ทางเลือกที่มีน้ำหนักเบาสำหรับ Hibernate? [ปิด]
ตามที่กล่าวไว้ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบถาม & ตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจก่อให้เกิดการถกเถียงโต้แย้งการสำรวจความคิดเห็นหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงได้และอาจเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อรับคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันมีโปรแกรม java ผู้ใช้คนเดียวที่ฉันต้องการจัดเก็บข้อมูลในฐานข้อมูลน้ำหนักเบาเช่น Derby หรือ Sqlite ฉันต้องการใช้เลเยอร์นามธรรมข้อมูลในโปรแกรมของฉัน ดูเหมือนว่าไฮเบอร์เนตจะต้องมีการกำหนดค่าจำนวนมากและเกินความจำเป็นสำหรับสิ่งที่ฉันต้องการ ทางเลือกที่มีน้ำหนักเบาสำหรับไฮเบอร์เนตคืออะไร?

8
JPA eager fetch ไม่เข้าร่วม
การควบคุมกลยุทธ์การดึงข้อมูลของ JPA คืออะไร? ฉันไม่สามารถตรวจพบความแตกต่างระหว่างความกระตือรือร้นและขี้เกียจ ในทั้งสองกรณี JPA / Hibernate จะไม่เข้าร่วมความสัมพันธ์แบบกลุ่มต่อหนึ่งโดยอัตโนมัติ ตัวอย่าง: บุคคลมีที่อยู่เดียว ที่อยู่อาจเป็นของคนจำนวนมาก คลาสเอนทิตีที่มีคำอธิบายประกอบ JPA มีลักษณะดังนี้: @Entity public class Person { @Id public Integer id; public String name; @ManyToOne(fetch=FetchType.LAZY or EAGER) public Address address; } @Entity public class Address { @Id public Integer id; public String name; } ถ้าฉันใช้แบบสอบถาม JPA: select …
113 java  hibernate  jpa  join 


8
คอลัมน์ซ้ำอีกคอลัมน์ในการแมปสำหรับข้อผิดพลาดของเอนทิตี
แม้จะมีโพสต์อื่น ๆ ทั้งหมด แต่ฉันไม่พบวิธีแก้ไขข้อผิดพลาดนี้กับ GlassFish บน MacOSX, NetBeans 7.2 Here the error : SEVERE: Exception while invoking class org.glassfish.persistence.jpa.JPADeployer prepare method SEVERE: Exception while preparing the app SEVERE: [PersistenceUnit: supmarket] Unable to build EntityManagerFactory ... Caused by: org.hibernate.MappingException: Repeated column in mapping for entity: com.supmarket.entity.Sale column: customerId (should be mapped …


3
การใช้ flush () อย่างถูกต้องใน JPA / Hibernate
ฉันกำลังรวบรวมข้อมูลเกี่ยวกับวิธีการ flush () แต่ยังไม่ชัดเจนว่าควรใช้เมื่อใดและจะใช้อย่างไรให้ถูกต้อง จากสิ่งที่ฉันอ่านความเข้าใจของฉันคือเนื้อหาของบริบทการคงอยู่จะถูกซิงโครไนซ์กับฐานข้อมูลนั่นคือการออกคำสั่งที่โดดเด่นหรือการรีเฟรชข้อมูลเอนทิตี ตอนนี้ฉันได้ติดตามสถานการณ์ที่มีสองเอนทิตีAและB(ในความสัมพันธ์แบบหนึ่งต่อหนึ่ง แต่ไม่ได้บังคับใช้หรือจำลองโดย JPA) Aมี PK recordIdคอมโพสิตซึ่งตั้งด้วยตนเองและยังมีสนาม นี้recordIdควรจะเขียนกิจการเป็นต่างประเทศที่สำคัญในการB AฉันกำลังบันทึกAและBในการทำธุรกรรมครั้งเดียว ปัญหาคือว่าค่าสร้างขึ้นโดยอัตโนมัติA.recordIdไม่ได้มีอยู่ในการทำธุรกรรมจนกว่าฉันโทรชัดเจนem.flush()หลังจากเรียกบนem.persist() A(ถ้าฉันมี IDENTITY PK ที่สร้างขึ้นโดยอัตโนมัติค่าจะได้รับการอัปเดตโดยตรงในเอนทิตี แต่นั่นไม่ใช่กรณีนี้) อาจem.flush()ก่อให้เกิดอันตรายใด ๆ เมื่อใช้ภายในธุรกรรมหรือไม่?

5
CascadeType.REMOVE และ orphanRemoval ใน JPA ต่างกันอย่างไร
อะไรคือความแตกต่างระหว่าง @OneToMany(cascade=REMOVE, mappedBy="customer") public List<Order> getOrders() { ... } และ @OneToMany(mappedBy="customer", orphanRemoval="true") public List<Order> getOrders() { ... } ตัวอย่างนี้มาจาก Java EE Tutorial แต่ฉันยังไม่เข้าใจรายละเอียด

11
ฉันต้องการองค์ประกอบ <class> ใน persistence.xml หรือไม่?
ฉันมีไฟล์ persistance.xml ที่ง่ายมาก: &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"&gt; &lt;persistence-unit name="eventractor" transaction-type="RESOURCE_LOCAL"&gt; &lt;class&gt;pl.michalmech.eventractor.domain.User&lt;/class&gt; &lt;class&gt;pl.michalmech.eventractor.domain.Address&lt;/class&gt; &lt;class&gt;pl.michalmech.eventractor.domain.City&lt;/class&gt; &lt;class&gt;pl.michalmech.eventractor.domain.Country&lt;/class&gt; &lt;properties&gt; &lt;property name="hibernate.hbm2ddl.auto" value="validate" /&gt; &lt;property name="hibernate.show_sql" value="true" /&gt; &lt;/properties&gt; &lt;/persistence-unit&gt; &lt;/persistence&gt; และมันได้ผล แต่เมื่อฉันลบ&lt;class&gt;แอปพลิเคชันองค์ประกอบไม่เห็นเอนทิตี (ทุกคลาสมีคำอธิบายประกอบ@Entity) มีกลไกอัตโนมัติในการสแกนหา@Entityชั้นเรียนหรือไม่?
110 java  hibernate  orm  jpa  annotations 

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