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

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

9
เหตุใด Hibernate Open Session in View จึงถือเป็นการปฏิบัติที่ไม่ดี
และคุณใช้กลยุทธ์ทางเลือกประเภทใดในการหลีกเลี่ยง LazyLoadExceptions? ฉันเข้าใจว่าเซสชันที่เปิดอยู่ในมุมมองมีปัญหากับ: แอปพลิเคชั่นแบบเลเยอร์ที่ทำงานใน jvm ที่แตกต่างกัน การทำธุรกรรมจะเกิดขึ้นในตอนท้ายเท่านั้นและส่วนใหญ่คุณอาจต้องการผลลัพธ์มาก่อน แต่ถ้าคุณรู้ว่าแอปพลิเคชันของคุณทำงานบน vm เดียวทำไมไม่คลายความเจ็บปวดของคุณโดยใช้กลยุทธ์การดูเซสชันแบบเปิด

12
Java มีคำสั่งใช้หรือไม่?
Java มีคำสั่งการใช้งานที่สามารถใช้เมื่อเปิดเซสชันในโหมดไฮเบอร์เนตหรือไม่? ใน C # เป็นสิ่งที่ชอบ: using (var session = new Session()) { } ดังนั้นวัตถุจึงอยู่นอกขอบเขตและปิดโดยอัตโนมัติ

13
วิธีแก้ไข Hibernate LazyInitializationException: ล้มเหลวในการเริ่มต้นชุดบทบาทอย่างเกียจคร้านไม่สามารถเตรียมใช้งานพร็อกซีได้ - ไม่มีเซสชัน
ใน AuthenticationProvider แบบกำหนดเองจากโครงการฤดูใบไม้ผลิของฉันฉันกำลังพยายามอ่านรายชื่อหน่วยงานของผู้ใช้ที่เข้าสู่ระบบ แต่ฉันพบข้อผิดพลาดต่อไปนี้: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.horariolivre.entity.Usuario.autorizacoes, could not initialize proxy - no Session at org.hibernate.collection.internal.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:566) at org.hibernate.collection.internal.AbstractPersistentCollection.withTemporarySessionIfNeeded(AbstractPersistentCollection.java:186) at org.hibernate.collection.internal.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:545) at org.hibernate.collection.internal.AbstractPersistentCollection.read(AbstractPersistentCollection.java:124) at org.hibernate.collection.internal.PersistentBag.iterator(PersistentBag.java:266) at com.horariolivre.security.CustomAuthenticationProvider.authenticate(CustomAuthenticationProvider.java:45) at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:156) at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:177) at org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter.attemptAuthentication(UsernamePasswordAuthenticationFilter.java:94) at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:211) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:57) at …

5
ฉันจะรับวัตถุเซสชันได้อย่างไรถ้าฉันมีผู้จัดการเอนทิตี
ฉันมี private EntityManager em; public List getAll(DetachedCriteria detachedCriteria) { return detachedCriteria.getExecutableCriteria("....").list(); } ฉันจะดึงข้อมูลเซสชันได้อย่างไรหากใช้เอนทิตีเมเนเจอร์หรือฉันจะรับผลลัพธ์จากเกณฑ์ที่แยกออกมาได้อย่างไร

4
เหตุใดฉันจึงต้องทำธุรกรรมในโหมดไฮเบอร์เนตสำหรับการดำเนินการแบบอ่านอย่างเดียว
เหตุใดฉันจึงต้องทำธุรกรรมในโหมดไฮเบอร์เนตสำหรับการดำเนินการแบบอ่านอย่างเดียว ธุรกรรมต่อไปนี้ทำให้เกิดการล็อกในฐานข้อมูลหรือไม่ ตัวอย่างรหัสที่จะดึงข้อมูลจากฐานข้อมูล: Transaction tx = HibernateUtil.getCurrentSession().beginTransaction(); // why begin transaction? //readonly operation here tx.commit() // why tx.commit? I don't want to write anything ใช้session.close() แทนได้tx.commit()หรือไม่?

11
ฉันจะเรียก deserializer เริ่มต้นจาก deserializer แบบกำหนดเองใน Jackson ได้อย่างไร
ฉันมีปัญหาใน deserializer ที่กำหนดเองใน Jackson ฉันต้องการเข้าถึง Serializer เริ่มต้นเพื่อเติมข้อมูลวัตถุที่ฉันกำลังแยกส่วน หลังจากมีประชากรฉันจะทำสิ่งที่กำหนดเอง แต่ก่อนอื่นฉันต้องการยกเลิกการกำหนดค่าเริ่มต้นของวัตถุด้วยพฤติกรรมเริ่มต้นของแจ็คสัน นี่คือรหัสที่ฉันมีอยู่ในขณะนี้ public class UserEventDeserializer extends StdDeserializer<User> { private static final long serialVersionUID = 7923585097068641765L; public UserEventDeserializer() { super(User.class); } @Override @Transactional public User deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { ObjectCodec oc = jp.getCodec(); JsonNode node = oc.readTree(jp); User deserializedUser …

14
ละเว้นฟิลด์จากออบเจ็กต์ Java แบบไดนามิกในขณะที่ส่งเป็น JSON จาก Spring MVC
ฉันมีคลาสโมเดลแบบนี้สำหรับจำศีล @Entity @Table(name = "user", catalog = "userdb") @JsonIgnoreProperties(ignoreUnknown = true) public class User implements java.io.Serializable { private Integer userId; private String userName; private String emailId; private String encryptedPwd; private String createdBy; private String updatedBy; @Id @GeneratedValue(strategy = IDENTITY) @Column(name = "UserId", unique = true, nullable = false) public Integer …

17
Spring Hibernate - ไม่สามารถรับ Session ที่ซิงโครไนซ์ธุรกรรมสำหรับเธรดปัจจุบัน
ฉันสร้างแอปพลิเคชันด้วย spring + hibernate แต่ฉันมักจะได้รับข้อผิดพลาดนี้ นี่เป็นแอปพลิเคชั่นแรกของฉันที่มีโหมดไฮเบอร์เนตฉันอ่านคำแนะนำ แต่ฉันไม่สามารถแก้ปัญหานี้ได้ ฉันทำผิดตรงไหน? นี่คือรหัสแอปพลิเคชันของฉัน ott 05, 2014 4:03:06 PM org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh Informazioni: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@1eab16b: startup date [Sun Oct 05 16:03:06 CEST 2014]; root of context hierarchy ott 05, 2014 4:03:06 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions Informazioni: Loading XML bean definitions from class path resource [springConfig.xml] ott 05, …

11
วิธีจัดเก็บวันที่ / เวลาและการประทับเวลาในเขตเวลา UTC ด้วย JPA และ Hibernate
ฉันจะกำหนดค่า JPA / Hibernate ให้จัดเก็บวันที่ / เวลาในฐานข้อมูลเป็นเขตเวลา UTC (GMT) ได้อย่างไร พิจารณาเอนทิตี JPA ที่มีคำอธิบายประกอบนี้: public class Event { @Id public int id; @Temporal(TemporalType.TIMESTAMP) public java.util.Date date; } ถ้าเป็นวันที่ 2008-Feb-03 09:30 น. เวลามาตรฐานแปซิฟิก (PST) ฉันต้องการให้เวลา UTC ของปี 2008-Feb-03 17:30 น. เก็บไว้ในฐานข้อมูล ในทำนองเดียวกันเมื่อเรียกข้อมูลวันที่จากฐานข้อมูลฉันต้องการให้ตีความเป็น UTC ดังนั้นในกรณีนี้ 530pm คือ 530pm UTC เมื่อแสดงผลจะมีรูปแบบเป็น 9:30 น. PST

10
เหตุใด Hibernate จึงไม่ต้องการตัวสร้างอาร์กิวเมนต์
ตัวสร้างไม่มีอาร์กิวเมนต์เป็นข้อกำหนด (เครื่องมือเช่นไฮเบอร์เนตใช้การสะท้อนบนตัวสร้างนี้เพื่อสร้างอินสแตนซ์อ็อบเจ็กต์) ฉันได้รับคำตอบที่เป็นคลื่น แต่ใครช่วยอธิบายเพิ่มเติมได้ไหม ขอบคุณ

4
วิธีแมปคุณสมบัติจากการคำนวณด้วย JPA และ Hibernate
Java bean ของฉันมีคุณสมบัติ childCount ที่พักแห่งนี้ไม่ได้แมปไปยังคอลัมน์ฐานข้อมูล แต่ควรคำนวณโดยฐานข้อมูลด้วยCOUNT()ฟังก์ชันที่ทำงานร่วมกับ Java bean ของฉันและลูกของมัน จะดียิ่งขึ้นถ้าคุณสมบัตินี้สามารถคำนวณได้ตามความต้องการ / "เกียจคร้าน" แต่ไม่ได้บังคับ ในกรณีที่เลวร้ายที่สุดฉันสามารถตั้งค่าคุณสมบัติของ bean นี้ด้วย HQL หรือ Criteria API แต่ฉันไม่ต้องการ @Formulaคำอธิบายประกอบไฮเบอร์เนตอาจช่วยได้ แต่ฉันแทบไม่พบเอกสารใด ๆ ความช่วยเหลือใด ๆ ที่ชื่นชมอย่างมาก ขอบคุณ.

4
@UniqueConstraint และ @Column (unique = true) ในคำอธิบายประกอบแบบจำศีล
ความแตกต่างระหว่างคืออะไร@UniqueConstraintและ@column (ที่ไม่ซ้ำกัน = true) ? ตัวอย่างเช่น: @Table( name = "product_serial_group_mask", uniqueConstraints = {@UniqueConstraint(columnNames = {"mask", "group"})} ) และ @Column(unique = true) @ManyToOne(optional = false, fetch = FetchType.EAGER) private ProductSerialMask mask; @Column(unique = true) @ManyToOne(optional = false, fetch = FetchType.EAGER) private Group group;

4
ประเภทการดึงข้อมูลเริ่มต้นสำหรับหนึ่งต่อหนึ่งหลายต่อหนึ่งและหนึ่งต่อหลายในไฮเบอร์เนต
ประเภทการดึงข้อมูลเริ่มต้นในการแมปไฮเบอร์เนตคืออะไร สิ่งที่ฉันต้องรู้หลังจากสำรวจคือ: อย่างใดอย่างหนึ่งต่อหนึ่งมันเป็นความกระตือรือร้น อย่างใดอย่างหนึ่งต่อหลายคนมันเป็นขี้เกียจ แต่หลังจากทดสอบใน Eclipse แล้วก็มีความกระตือรือร้นอย่างมาก ขึ้นอยู่กับว่าฉันใช้ JPA หรือ Hibernate หรือไม่
104 java  hibernate  jpa 

7
การใช้คำอธิบายประกอบ @Temporal ในไฮเบอร์เนตคืออะไร?
เอกสาร Hibernate มีข้อมูลด้านล่างสำหรับ@Temporalคำอธิบายประกอบ: ใน Java API ธรรมดาไม่ได้กำหนดความแม่นยำของเวลาชั่วคราว เมื่อจัดการกับข้อมูลชั่วคราวคุณอาจต้องการอธิบายความแม่นยำที่คาดหวังในฐานข้อมูล ข้อมูลช่วงเวลาสามารถมีความแม่นยำ DATE, TIME หรือ TIMESTAMP (เช่นวันที่จริงเฉพาะเวลาหรือทั้งสองอย่าง) ใช้คำอธิบายประกอบ @Temporal เพื่อปรับแต่งสิ่งนั้น อะไรtemporal precision of time is not definedหมายถึง? อะไรคือtemporalข้อมูลและความแม่นยำของตนหรือไม่ มันปรับยังไง?
104 java  hibernate 

8
ควรใช้งานเท่ากับและแฮชโค้ดอย่างไรเมื่อใช้ JPA และ Hibernate
คลาสโมเดลควรมีการใช้งานเท่ากับและแฮชโค้ดในไฮเบอร์เนตอย่างไร อะไรคือข้อผิดพลาดที่พบบ่อย? การใช้งานเริ่มต้นดีเพียงพอสำหรับกรณีส่วนใหญ่หรือไม่ การใช้คีย์ธุรกิจมีความหมายหรือไม่? สำหรับฉันแล้วดูเหมือนว่ามันค่อนข้างยากที่จะทำให้มันทำงานได้ถูกต้องในทุกสถานการณ์เมื่อคำนึงถึงการดึงข้อมูลการสร้างรหัสพร็อกซีและอื่น ๆ
103 java  hibernate  orm  equals  hashcode 

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