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

Java Persistence API (JPA) เป็นข้อกำหนดคุณสมบัติ Java สำหรับการเข้าถึงการคงอยู่และการจัดการข้อมูลระหว่างวัตถุ / คลาส Java และฐานข้อมูลเชิงสัมพันธ์ เป็นส่วนหนึ่งของข้อกำหนด EJB 3.0 และเป็นแนวทางมาตรฐานอุตสาหกรรมสำหรับ Object to Relational Mapping (ORM)

8
setMaxResults สำหรับคำอธิบายประกอบ Spring-Data-JPA?
ฉันพยายามรวม Spring-Data-JPA เข้ากับโครงการของฉัน สิ่งหนึ่งที่ทำให้ฉันสับสนคือฉันจะบรรลุ setMaxResults (n) ด้วยคำอธิบายประกอบได้อย่างไร ตัวอย่างเช่นรหัสของฉัน: public interface UserRepository extends CrudRepository<User , Long> { @Query(value="From User u where u.otherObj = ?1 ") public User findByOhterObj(OtherObj otherObj); } ฉันต้องการคืนone (and only one)User จาก otherObj เท่านั้น แต่ฉันหาวิธีใส่คำอธิบายประกอบ maxResults ไม่ได้ ใครช่วยให้คำแนะนำฉันได้ไหม (mysql บ่น: com.mysql.jdbc.JDBC4PreparedStatement@5add5415: select user0_.id as id100_, user0_.created as created100_ …

16
Spring Data JPA - ข้อยกเว้น“ ไม่พบคุณสมบัติสำหรับประเภท”
ฉันค้นหาใน Google และพบผลลัพธ์มากมาย แต่ไม่มีผลลัพธ์ใดที่สามารถตอบปัญหาของฉันได้ นี่มันไปแล้ว ฉันกำลังพยายามศึกษา Spring MVC และ Spring Data JPA โดยใช้การโคลน pinterest เพียงเล็กน้อย ดังนั้นต่อไปนี้เป็นส่วนของโค้ดที่ฉันคิดว่าเกี่ยวข้องกับปัญหาของฉัน รุ่น / หน่วยงาน @Entity @Table(name = "pin_item") public class PinItem implements Serializable { // properties ... @JoinColumn(name = "board_id", referencedColumnName = "user_board_id") @ManyToOne(optional = false) private UserBoard board; // getters and setters... } @Entity …

4
การเพิ่มในรายการประโยคไปยังแบบสอบถาม JPA
ฉันได้สร้าง NamedQuery ที่มีลักษณะดังนี้: @NamedQuery(name = "EventLog.viewDatesInclude", query = "SELECT el FROM EventLog el WHERE el.timeMark >= :dateFrom AND " + "el.timeMark <= :dateTo AND " + "el.name IN (:inclList)") สิ่งที่ฉันต้องการทำคือกรอกพารามิเตอร์: inclList ด้วยรายการของรายการแทนที่จะเป็นรายการเดียว ตัวอย่างเช่นหากฉันมีฉันจะหาnew List<String>() { "a", "b", "c" }สิ่งนั้นในพารามิเตอร์: inclList ได้อย่างไร มันช่วยให้ฉันเข้ารหัสหนึ่งสตริงเท่านั้น ตัวอย่างเช่น: setParameter("inclList", "a") // works setParameter("inclList", "a, b") …
125 java  jpa  jpql 

10
Spring Boot + JPA: ไม่สนใจคำอธิบายประกอบชื่อคอลัมน์
ฉันมีโปรแกรมฤดูใบไม้ผลิ Boot spring-boot-starter-data-jpaกับการพึ่งพา คลาสเอนทิตีของฉันมีคำอธิบายประกอบคอลัมน์ที่มีชื่อคอลัมน์ ตัวอย่างเช่น: @Column(name="TestName") private String testName; SQL ที่สร้างขึ้นโดยสร้างtest_nameเป็นชื่อคอลัมน์ หลังจากค้นหาวิธีแก้ปัญหาฉันพบว่าspring.jpa.hibernate.naming_strategy=org.hibernate.cfg.EJB3NamingStrategyแก้ไขปัญหาได้แล้ว (ชื่อคอลัมน์นำมาจากคำอธิบายประกอบคอลัมน์) อย่างไรก็ตามคำถามของฉันคือเหตุใดโดยไม่ตั้งชื่อ _strategy เป็นEJB3NamingStrategyJPA จึงไม่สนใจคำอธิบายประกอบคอลัมน์ บางทีภาษาไฮเบอร์เนตอาจมีส่วนเกี่ยวข้องกับมัน? ฉันกำลังเชื่อมต่อกับ MS SQL 2014 Express และบันทึกของฉันประกอบด้วย: Unknown Microsoft SQL Server major version [12] using SQL Server 2000 dialect Using dialect: org.hibernate.dialect.SQLServerDialect

2
spring.jpa.open-in-view = คุณสมบัติที่แท้จริงใน Spring Boot คืออะไร?
ฉันเห็นspring.jpa.open-in-view=trueคุณสมบัติในเอกสาร Spring Boot สำหรับการกำหนดค่า JPA เป็นtrueค่าเริ่มต้นสำหรับคุณสมบัตินี้หากไม่ได้ระบุไว้เลยหรือไม่; สิ่งนี้ทำอะไรได้บ้าง? ฉันไม่พบคำอธิบายที่ดีสำหรับมัน มันทำให้คุณใช้SessionFactoryแทนEntityManagerFactory? ถ้าใช่ฉันจะแจ้งให้ฉันใช้EntityManagerFactoryแทนได้อย่างไร ขอบคุณ!

4
Java Persistence / JPA: @Column vs @Basic
ความแตกต่างระหว่างคืออะไร@Columnและ@Basicคำอธิบายประกอบใน JPA? สามารถใช้ร่วมกันได้หรือไม่? ควรใช้ร่วมกันหรือไม่? หรือหนึ่งในนั้นพอเพียง?
119 java  jpa  persistence 

4
ความแตกต่างระหว่าง persist () และ merge () ใน JPA และ Hibernate คืออะไร?
ความแตกต่างระหว่าง persist () และ merge () ใน Hibernate คืออะไร? persist() สามารถสร้างแบบสอบถาม UPDATE & INSERT เช่น: SessionFactory sef = cfg.buildSessionFactory(); Session session = sef.openSession(); A a=new A(); session.persist(a); a.setName("Mario"); session.flush(); ในกรณีนี้จะมีการสร้างแบบสอบถามดังนี้: Hibernate: insert into A (NAME, ID) values (?, ?) Hibernate: update A set NAME=? where ID=? ดังนั้นpersist()วิธีการสามารถสร้างส่วนแทรกและการอัปเดต ขณะนี้มีmerge(): SessionFactory sef …
119 java  hibernate  jpa  orm  entity 

4
JPA หรือ JDBC ต่างกันอย่างไร?
ฉันกำลังเรียนรู้ Java EE และฉันดาวน์โหลด eclipse ด้วย glassfish สำหรับสิ่งเดียวกัน ฉันเห็นตัวอย่างบางส่วนและอ่านเอกสาร Oracle เพื่อทราบข้อมูลทั้งหมดเกี่ยวกับ Java EE 5 การเชื่อมต่อกับฐานข้อมูลนั้นง่ายมาก ฉันเปิดโปรเจ็กต์เว็บแบบไดนามิกสร้างเซสชัน EJB ฉันใช้ EntityManager และด้วยเมธอด get สามารถเข้าถึงตารางข้อมูลที่เก็บไว้ได้ สำหรับโปรเจ็กต์ถัดไปของฉันฉันได้สร้างคลาสง่ายๆจากนั้นเข้าถึงตาราง DB ปัญหาแรกที่ฉันพบคือแอตทริบิวต์ PersistenceUnit จะได้รับการยอมรับโดย EJB, Servlet และอื่น ๆ เท่านั้นไม่ใช่คลาส java ธรรมดา ดังนั้นฉันจึงไม่สามารถใช้วิธี EntityManager ได้ (หรือฉันสามารถ?) ฉันถูกขอให้ไปทาง "JDBC" ปัญหาแรกที่ฉันพบคือการเชื่อมต่อกับ DB ดูเหมือนว่าทั้งหมดนี้จะต้องเป็นฮาร์ดโค้ด ฉันมี persistence.xml ซึ่งฉันสามารถกำหนดค่าการเชื่อมต่อฐานข้อมูลได้อย่างง่ายดาย แม้แต่การตั้งค่าไดรเวอร์สำหรับ DB ก็ทำได้ง่าย นอกจากนี้ยังไม่มีเมธอด …
119 java  jpa  jdbc 

5
Java - JPA - คำอธิบายประกอบ @Version
วิธีการ@Versionทำงานของคำอธิบายประกอบใน JPA? ฉันพบคำตอบต่างๆซึ่งมีสารสกัดดังนี้: JPA ใช้ฟิลด์เวอร์ชันในเอนทิตีของคุณเพื่อตรวจหาการแก้ไขพร้อมกันกับเรกคอร์ดที่เก็บข้อมูลเดียวกัน เมื่อรันไทม์ JPA ตรวจพบความพยายามที่จะแก้ไขเร็กคอร์ดเดียวกันพร้อมกันมันจะแสดงข้อยกเว้นสำหรับธุรกรรมที่พยายามคอมมิตครั้งสุดท้าย แต่ฉันยังไม่แน่ใจว่ามันทำงานอย่างไร จากบรรทัดต่อไปนี้: คุณควรพิจารณาฟิลด์เวอร์ชันไม่เปลี่ยนรูป การเปลี่ยนค่าฟิลด์มีผลลัพธ์ที่ไม่ได้กำหนดไว้ หมายความว่าเราควรประกาศฟิลด์เวอร์ชันของเราเป็นfinal?

6
Hibernate, @SequenceGenerator และการจัดสรรขนาด
เราทุกคนรู้ถึงพฤติกรรมเริ่มต้นของ Hibernate เมื่อใช้@SequenceGenerator- มันจะเพิ่มลำดับฐานข้อมูลจริงทีละค่านี้คูณด้วย 50 (ค่าเริ่มต้นallocationSize) - จากนั้นใช้ค่านี้เป็น ID เอนทิตี นี่เป็นพฤติกรรมที่ไม่ถูกต้องและขัดแย้งกับข้อกำหนดที่ระบุว่า: จัดสรรขนาด - (ไม่บังคับ) จำนวนเงินที่จะเพิ่มขึ้นเมื่อจัดสรรหมายเลขลำดับจากลำดับ เพื่อความชัดเจน: ฉันไม่กังวลเกี่ยวกับช่องว่างระหว่าง ID ที่สร้างขึ้น ฉันสนใจ ID ที่ไม่สอดคล้องกับลำดับฐานข้อมูลพื้นฐาน ตัวอย่างเช่น: แอปพลิเคชันอื่น ๆ (เช่นใช้ JDBC ธรรมดา) อาจต้องการแทรกแถวใหม่ภายใต้ ID ที่ได้รับจากลำดับ - แต่ค่าเหล่านั้นทั้งหมดอาจถูกใช้โดย Hibernate! ความบ้าคลั่ง มีใครทราบวิธีแก้ปัญหานี้allocationSize=1บ้างไหม(โดยไม่ต้องตั้งค่าและทำให้ประสิทธิภาพลดลง) แก้ไข: เพื่อให้ทุกอย่างชัดเจน ถ้าระเบียนสุดท้ายแทรกมี ID = 1ค่าใช้แล้ว HB 51, 52, 53...สำหรับองค์กรใหม่ แต่ในเวลาเดียวกัน: 2ค่าลำดับในฐานข้อมูลของจะถูกตั้งค่า ซึ่งสามารถนำไปสู่ข้อผิดพลาดได้อย่างง่ายดายเมื่อแอปพลิเคชันอื่นกำลังใช้ลำดับนั้น ในทางกลับกัน: …
117 java  hibernate  jpa  hilo 


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 Data JPA GROUP BY
ฉันกำลังพัฒนาแอปพลิเคชัน Spring Boot ด้วย Spring Data JPA ฉันใช้แบบสอบถาม JPQL ที่กำหนดเองเพื่อจัดกลุ่มตามฟิลด์และรับการนับ ต่อไปนี้เป็นวิธีการจัดเก็บของฉัน @Query(value = "select count(v) as cnt, v.answer from Survey v group by v.answer") public List<?> findSurveyCount(); มันใช้งานได้และได้ผลลัพธ์ดังนี้: [ [1, "a1"], [2, "a2"] ] ฉันต้องการได้รับสิ่งนี้: [ { "cnt":1, "answer":"a1" }, { "cnt":2, "answer":"a2" } ] ฉันจะบรรลุเป้าหมายนี้ได้อย่างไร?

7
JPA - ส่งคืน id ที่สร้างขึ้นโดยอัตโนมัติหลังจากยังคงมีอยู่ ()
ฉันใช้ JPA (EclipseLink) และ Spring สมมติว่าฉันมีเอนทิตีธรรมดาที่มี ID ที่สร้างขึ้นอัตโนมัติ: @Entity public class ABC implements Serializable { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private int id; // ... } ในคลาส DAO ของฉันฉันมีวิธีการแทรกที่เรียกpersist()ใช้เอนทิตีนี้ ฉันต้องการให้เมธอดส่งคืน ID ที่สร้างขึ้นสำหรับเอนทิตีใหม่ แต่เมื่อฉันทดสอบมันจะส่งคืน0แทน public class ABCDao { @PersistenceContext EntityManager em; @Transactional(readOnly=false) public int insertABC(ABC abc) { em.persist(abc); // I WANT TO RETURN THE …
115 java  jpa 

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 

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