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

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

8
วิธีที่ง่ายที่สุดในการละเว้นฟิลด์ JPA คืออะไรในระหว่างการคงอยู่
ฉันกำลังมองหาคำอธิบายประกอบแบบ "@Ignore" เป็นหลักซึ่งฉันสามารถหยุดฟิลด์ใดฟิลด์หนึ่งจากการถูกยืนยันได้ จะประสบความสำเร็จได้อย่างไร?
281 java  database  hibernate  jpa 

8
Hibernate SessionFactory กับ JPA EntityManagerFactory
ฉันใหม่เพื่อ Hibernate และผมไม่แน่ใจว่าจะใช้ Hibernate SessionFactoryหรือ JPA เพื่อสร้างไฮเบอร์เนต EntityManagerFactorySession ความแตกต่างระหว่างสองสิ่งนี้คืออะไร? ข้อดีและข้อเสียของการใช้แต่ละข้อคืออะไร


17
การสร้างเวลาประทับและเวลาการอัพเดทล่าสุดด้วย Hibernate และ MySQL
สำหรับนิติบุคคลที่ไฮเบอร์เนตเรามีข้อกำหนดในการจัดเก็บเวลาการสร้างและครั้งล่าสุดที่มีการอัปเดต คุณจะออกแบบสิ่งนี้อย่างไร ชนิดข้อมูลใดที่คุณจะใช้ในฐานข้อมูล (สมมติว่า MySQL อาจเป็นในเขตเวลาอื่นที่ JVM) ชนิดข้อมูลจะตระหนักถึงเขตเวลาหรือไม่ ข้อมูลประเภทใดบ้างที่คุณจะใช้ในชวา ( Date, Calendar, long, ... )? คุณจะรับผิดชอบการตั้งค่าการประทับเวลา - ฐานข้อมูล, กรอบงาน ORM (ไฮเบอร์เนต) หรือโปรแกรมเมอร์โปรแกรม คุณจะใช้คำอธิบายประกอบใดสำหรับการทำแผนที่ (เช่น@Temporal) ฉันไม่เพียง แต่กำลังมองหาวิธีแก้ปัญหาการทำงาน แต่เพื่อความปลอดภัยและการออกแบบที่ดี


4
ความสับสน: @NotNull เทียบกับ @ คอลัมน์ (nullable = false) ด้วย JPA และไฮเบอร์เนต
เมื่อพวกเขาปรากฏบนสนาม / ทะเยอทะยานของความ@Entityแตกต่างระหว่างพวกเขาคืออะไร? (ฉันยืนยันเอนทิตีผ่านไฮเบอร์เนต ) กรอบและ / หรือข้อกำหนดใดที่แต่ละข้อเป็นของ @NotNulljavax.validation.constraintsตั้งอยู่ภายใน ในjavax.validation.constraints.NotNulljavadoc มันบอกว่า องค์ประกอบที่ใส่หมายเหตุประกอบจะต้องไม่เป็นโมฆะ แต่มันไม่ได้พูดถึงการเป็นตัวแทนขององค์ประกอบในฐานข้อมูลดังนั้นทำไมฉันจะเพิ่มข้อ จำกัดnullable=falseในคอลัมน์?

14
คุณจะค้นหาแบบ จำกัด ใน JPQL หรือ HQL ได้อย่างไร
ใน Hibernate 3 มีวิธีทำข้อ จำกัด MySQL ต่อไปนี้ใน HQL หรือไม่? select * from a_table order by a_table_column desc limit 0, 20; ฉันไม่ต้องการใช้ setMaxResults ถ้าเป็นไปได้ สิ่งนี้เป็นไปได้แน่นอนใน Hibernate / HQL รุ่นเก่า แต่ดูเหมือนว่าจะหายไป

18
PersistentObjectException: เอนทิตีที่แยกออกมาถูกส่งผ่านเพื่อคงอยู่โดย JPA และ Hibernate
ฉันมีรูปแบบวัตถุ JPA-ยืนกรานที่มีหลายต่อหนึ่งความสัมพันธ์: การมีจำนวนมากAccount มีหนึ่งTransactionsTransactionAccount นี่คือตัวอย่างของรหัส: @Entity public class Transaction { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; @ManyToOne(cascade = {CascadeType.ALL},fetch= FetchType.EAGER) private Account fromAccount; .... @Entity public class Account { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; @OneToMany(cascade = {CascadeType.ALL},fetch= FetchType.EAGER, mappedBy = "fromAccount") private Set<Transaction> transactions; ฉันสามารถสร้างAccountวัตถุเพิ่มธุรกรรมไปยังAccountวัตถุนั้นและคงวัตถุไว้อย่างถูกต้อง แต่เมื่อฉันสร้างธุรกรรมโดยใช้บัญชีที่มีอยู่แล้วและยืนยันการทำธุรกรรมฉันจะได้รับข้อยกเว้น: เกิดจาก: …
237 java  hibernate  jpa  entity  persist 

22
Hibernate - คอลเล็กชันที่มี cascade =” all-delete-orphan” ไม่ได้ถูกอ้างอิงโดยอินสแตนซ์เอนทิตีของการเป็นเจ้าของอีกต่อไป
ฉันประสบปัญหาดังต่อไปนี้เมื่อพยายามอัปเดตเอนทิตีของฉัน: "A collection with cascade=”all-delete-orphan” was no longer referenced by the owning entity instance". ฉันมีเอนทิตีหลักและมีSet<...>เอนทิตีลูกบางอย่าง เมื่อฉันพยายามอัปเดตฉันจะได้รับการอ้างอิงทั้งหมดเพื่อตั้งค่าเป็นคอลเล็กชันนี้และตั้งค่า รหัสต่อไปนี้แสดงถึงการทำแผนที่ของฉัน: @OneToMany(mappedBy = "parentEntity", fetch = FetchType.EAGER) @Cascade({ CascadeType.ALL, CascadeType.DELETE_ORPHAN }) public Set<ChildEntity> getChildren() { return this.children; } ฉันพยายามทำความสะอาด Set <.. > เท่านั้นตามนี้: วิธี "เป็นไปได้" ในการแก้ปัญหาแต่มันไม่ทำงาน หากคุณมีความคิดใด ๆ โปรดแจ้งให้เราทราบ ขอบคุณ!

18
buildSessionFactory () เป็นวิธีการกำหนดค่าที่เลิกใช้ใน Hibernate หรือไม่
เมื่อฉันอัปเดตเวอร์ชันไฮเบอร์เนตจาก 3.6.8 เป็น 4.0.0 ฉันได้รับคำเตือนเกี่ยวกับวิธีเลิกใช้buildSessionFactory()ในบรรทัดนี้: private static final SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); Javadoc แนะนำให้ใช้วิธีอื่น buildSessionFactory(ServiceRegistry serviceRegistry) แต่ในเอกสารฉันพบว่าตัวแปรที่ไม่สนับสนุน :( คุณช่วยฉันด้วยความเข้าใจผิดเล็กน้อยนี้ได้ไหม?

9
ฉันจะทำให้ความสัมพันธ์ JPA OneToOne ขี้เกียจได้อย่างไร
ในแอปพลิเคชันนี้เรากำลังพัฒนาเราสังเกตว่ามุมมองนั้นช้าเป็นพิเศษ ฉันทำมุมมองและสังเกตว่ามีหนึ่งแบบสอบถามดำเนินการโดยจำศีลซึ่งใช้เวลา 10 วินาทีแม้ว่าจะมีเพียงสองวัตถุในฐานข้อมูลเพื่อดึงข้อมูล ทั้งหมดOneToManyและManyToManyความสัมพันธ์ที่มีความขี้เกียจเพื่อให้เป็นไม่ได้เป็นปัญหา เมื่อตรวจสอบ SQL ที่เกิดขึ้นจริงฉันสังเกตว่ามีการรวมมากกว่า 80 รายการในแบบสอบถาม การตรวจสอบเพิ่มเติมปัญหาฉันสังเกตเห็นว่าปัญหาเกิดจากลำดับชั้นลึกOneToOneและManyToOneความสัมพันธ์ระหว่างคลาสเอนทิตี้ ดังนั้นฉันคิดว่าฉันจะทำให้พวกเขาขี้เกียจที่จะแก้ปัญหา แต่คำอธิบายประกอบอย่างใดอย่างหนึ่ง@OneToOne(fetch=FetchType.LAZY)หรือ@ManyToOne(fetch=FetchType.LAZY)ดูเหมือนจะไม่ทำงาน ทั้งฉันได้รับข้อยกเว้นหรือไม่พวกเขาจะไม่ถูกแทนที่ด้วยวัตถุพร็อกซีและทำให้ขี้เกียจ ความคิดใดที่ฉันจะทำให้มันทำงานได้? โปรดทราบว่าฉันไม่ได้ใช้persistence.xmlเพื่อกำหนดความสัมพันธ์หรือรายละเอียดการกำหนดค่าทุกอย่างจะทำในรหัสจาวา

9
ไฮเบอร์เนตพ่น org.hibernate.AnnotationException: ไม่ได้ระบุตัวระบุสำหรับเอนทิตี: com..domain.idea.MAE_MFEView
เหตุใดฉันจึงได้รับข้อยกเว้นนี้ package com.domain.idea; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.JoinColumn; import javax.persistence.OneToOne; import javax.persistence.Table; import org.hibernate.annotations.AccessType; /** * object model for the view [InvestmentReturn].[vMAE_MFE] */ @Entity @Table(name="vMAE_MFE", schema="InvestmentReturn") @AccessType("field") public class MAE_MFEView { /** * trade property is a SuggestdTradeRecommendation object */ @OneToOne(fetch = FetchType.LAZY , cascade = { …

6
อะไรคือความแตกต่างระหว่าง Hibernate และ Spring Data JPA
อะไรคือความแตกต่างที่สำคัญระหว่าง Hibernate และ Spring Data JPA เมื่อใดที่เราไม่ควรใช้ Hibernate หรือ Spring Data JPA นอกจากนี้เมื่อใดที่เท็มเพลต Spring JDBC อาจทำงานได้ดีกว่า Hibernate / Spring Data JPA

30
org.hibernate.HibernateException: การเข้าถึง DialectResolutionInfo ไม่สามารถเป็นค่าว่างเมื่อไม่ได้ตั้งค่า 'hibernate.dialect'
ฉันพยายามเรียกใช้แอปพลิเคชัน spring-boot ซึ่งใช้ Hibernate ผ่าน spring-jpa แต่ฉันได้รับข้อผิดพลาดนี้: Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImpl.java:104) at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:71) at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:205) at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:111) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:234) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:206) at org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1885) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1843) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:843) at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:398) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:842) at org.hibernate.jpa.HibernatePersistenceProvider.createContainerEntityManagerFactory(HibernatePersistenceProvider.java:152) at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:336) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:318) …

8
วิธีแมปคีย์ผสมกับ JPA และไฮเบอร์เนต
ในรหัสนี้วิธีสร้างคลาส Java สำหรับคอมโพสิตคีย์ (วิธีผสมคีย์ในไฮเบอร์เนต): create table Time ( levelStation int(15) not null, src varchar(100) not null, dst varchar(100) not null, distance int(15) not null, price int(15) not null, confPathID int(15) not null, constraint ConfPath_fk foreign key(confPathID) references ConfPath(confPathID), primary key (levelStation, confPathID) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

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