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

การทำแผนที่วัตถุเชิงสัมพันธ์ (ORM) เป็นเทคนิคสำหรับการทำแผนที่ระบบเชิงวัตถุกับฐานข้อมูลเชิงสัมพันธ์ ใช้แท็กอื่น ๆ เพื่อระบุภาษาการเขียนโปรแกรม ([java], [sql], [python]), ระบบฐานข้อมูล ([postgreSQL], ระบบจัดการเนื้อหา ([django]), กรอบงาน ([ขวด], [ฤดูใบไม้ผลิ], [laravel ]) สภาพแวดล้อมของแอปพลิเคชัน ([android], [node.js]) และแท็กอื่น ๆ ที่สามารถใช้สำหรับการค้นหาและมีผู้เฝ้าดู

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 


1
Pony (ORM) มีลูกเล่นอย่างไร?
Pony ORMเป็นเคล็ดลับที่ดีในการแปลงนิพจน์ตัวสร้างเป็น SQL ตัวอย่าง: >>> select(p for p in Person if p.name.startswith('Paul')) .order_by(Person.name)[:2] SELECT "p"."id", "p"."name", "p"."age" FROM "Person" "p" WHERE "p"."name" LIKE "Paul%" ORDER BY "p"."name" LIMIT 2 [Person[3], Person[1]] >>> ฉันรู้ว่า Python มีการวิปัสสนาและ metaprogramming ที่ยอดเยี่ยมในตัว แต่ไลบรารีนี้สามารถแปลนิพจน์ตัวสร้างโดยไม่ต้องประมวลผลล่วงหน้าได้อย่างไร ดูเหมือนเวทมนตร์ [อัปเดต] Blender เขียนว่า: นี่คือไฟล์ที่คุณต้องการ ดูเหมือนว่าจะสร้างเครื่องกำเนิดไฟฟ้าขึ้นมาใหม่โดยใช้วิซาร์ดการวิปัสสนา ฉันไม่แน่ใจว่ามันรองรับไวยากรณ์ของ Python ได้ 100% หรือเปล่า แต่มันค่อนข้างเจ๋ง …


9
บริบทความคงอยู่คืออะไร?
ฉันยังใหม่กับโลก Java และ JPA ฉันเรียน JPA และเจอศัพท์ใหม่ ๆ มากมายเช่น Entity, persistence ขณะที่อ่านผมไม่สามารถเข้าใจความหมายที่แน่นอนสำหรับความคงทนบริบท ใครช่วยอธิบายเป็นฆราวาสง่ายๆ จะทำอย่างไรกับข้อมูลที่ใช้ใน@Entity? ตัวอย่างเช่นฉันพบว่าคำจำกัดความนี้ซับซ้อนเกินกว่าที่จะเข้าใจ: บริบทการคงอยู่คือชุดของเอนทิตีที่สำหรับเอกลักษณ์ถาวรใด ๆ จะมีอินสแตนซ์เอนทิตีที่ไม่ซ้ำกัน
111 java  jpa  orm  persistence 

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 

2
ประโยค JPQL IN: Java-Arrays (หรือ Lists, Sets ... )?
ฉันต้องการโหลดอ็อบเจ็กต์ทั้งหมดที่มีแท็กข้อความที่ตั้งค่าเป็นค่าใด ๆ จำนวนเล็กน้อย แต่โดยพลการจากฐานข้อมูลของเรา วิธีเชิงตรรกะในการดำเนินการนี้ใน SQL คือการสร้างอนุประโยค "IN" JPQL อนุญาตให้ใช้ IN แต่ดูเหมือนว่าต้องการให้ฉันระบุทุกพารามิเตอร์เป็น IN โดยตรง (เช่นใน "in (: in1,: in2,: in3)") มีวิธีบางอย่างในการระบุอาร์เรย์หรือรายการ (หรือคอนเทนเนอร์อื่น ๆ ) ที่ควรยกเลิกการควบคุมค่าของประโยค IN หรือไม่?
108 sql  orm  jpa  jpql  named-query 

8
คุณจะทำเพจด้วย NHibernate ได้อย่างไร?
ตัวอย่างเช่นฉันต้องการเติมข้อมูลตัวควบคุม gridview ในเว็บเพจ ASP.NET โดยมีเฉพาะข้อมูลที่จำเป็นสำหรับจำนวนแถวที่แสดง NHibernate รองรับสิ่งนี้ได้อย่างไร?

20
มีเหตุผลที่ดีที่จะไม่ใช้ ORM หรือไม่? [ปิด]
ตามที่กล่าวไว้ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบถาม &amp; ตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจก่อให้เกิดการถกเถียงโต้แย้งการสำรวจความคิดเห็นหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงได้และอาจเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อรับคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ระหว่างฝึกงานฉันได้ใช้NHibernateกับโปรเจ็กต์ขนาดเล็กบางโปรเจ็กต์ซึ่งส่วนใหญ่ฉันเขียนโค้ดและออกแบบด้วยตัวเอง ตอนนี้ก่อนที่จะเริ่มโปรเจ็กต์ที่ใหญ่กว่านี้มีการอภิปรายกันว่าจะออกแบบการเข้าถึงข้อมูลอย่างไรและจะใช้เลเยอร์ ORM หรือไม่ ในขณะที่ฉันยังอยู่ในการฝึกงานและยังคงคิดว่าตัวเองเป็นมือใหม่ในการเขียนโปรแกรมระดับองค์กรฉันจึงไม่ได้พยายามผลักดันในความคิดของฉันซึ่งก็คือการใช้ตัวทำแผนที่เชิงสัมพันธ์กับฐานข้อมูลสามารถทำให้การพัฒนาง่ายขึ้นได้มาก นักเขียนโค้ดคนอื่น ๆ ในทีมพัฒนามีประสบการณ์มากกว่าฉันมากดังนั้นฉันคิดว่าฉันจะทำตามที่พวกเขาพูด :-) อย่างไรก็ตามฉันไม่เข้าใจเหตุผลหลักสองประการที่ไม่ใช้ NHibernate หรือโครงการที่คล้ายกัน: เราสามารถสร้างอ็อบเจ็กต์การเข้าถึงข้อมูลของตัวเองด้วยคิวรี SQL และคัดลอกแบบสอบถามเหล่านั้นออกจาก Microsoft SQL Server Management Studio การดีบัก ORM อาจเป็นเรื่องยาก ดังนั้นแน่นอนว่าฉันสามารถสร้างชั้นการเข้าถึงข้อมูลของฉันด้วยจำนวนมากSELECTฯลฯ แต่ที่นี่ฉันพลาดข้อได้เปรียบของการรวมอัตโนมัติคลาสพร็อกซีที่โหลดขี้เกียจและความพยายามในการบำรุงรักษาที่ต่ำกว่าหากตารางได้รับคอลัมน์ใหม่หรือคอลัมน์ได้รับ เปลี่ยนชื่อ (การอัปเดตจำนวนมากSELECT, INSERTและUPDATEคำสั่งกับการอัปเดตการตั้งค่าการทำแผนที่และอาจ refactoring เรียนธุรกิจและ DTOs.) นอกจากนี้การใช้ NHibernate คุณสามารถประสบปัญหาที่คาดไม่ถึงหากคุณไม่รู้จักกรอบงานเป็นอย่างดี ตัวอย่างเช่นเชื่อมั่น Table.hbm.xml ที่คุณตั้งค่าความยาวของสตริงให้ตรวจสอบโดยอัตโนมัติ อย่างไรก็ตามฉันยังสามารถจินตนาการถึงจุดบกพร่องที่คล้ายกันในชั้นการเข้าถึงข้อมูลแบบ "ง่ายๆ" SqlConnection ในที่สุดข้อโต้แย้งเหล่านั้นที่กล่าวถึงข้างต้นเป็นเหตุผลที่ดีที่จะไม่ใช้ ORM …
107 c#  nhibernate  orm  enterprise 

10
วิธีใส่คำอธิบายประกอบฟิลด์การเพิ่มอัตโนมัติ MYSQL ด้วยคำอธิบายประกอบ JPA
ตรงประเด็นปัญหาคือการบันทึก object Operator ลงใน MySQL DB ก่อนที่จะบันทึกฉันพยายามเลือกจากตารางนี้และมันใช้งานได้การเชื่อมต่อกับ db นี่คือวัตถุ Operator ของฉัน: @Entity public class Operator{ @Id @GeneratedValue private Long id; private String username; private String password; private Integer active; //Getters and setters... } ในการบันทึกฉันใช้วิธีEntityManagerของJPApersist นี่คือบันทึกบางส่วน: Hibernate: insert into Operator (active, password, username, id) values (?, ?, ?, ?) com.mysql.jdbc.JDBC4PreparedStatement@15724a0: insert …
106 java  mysql  orm  jpa  annotations 

4
วิธีสร้างแบบสอบถามเข้าร่วมโดยใช้ Sequelize บน Node.js
ฉันใช้ ORM ภาคต่อ; ทุกอย่างดีและสะอาด แต่ฉันมีปัญหาเมื่อใช้กับjoinแบบสอบถาม ฉันมีสองรุ่น: ผู้ใช้และโพสต์ var User = db.seq.define('User',{ username: { type: db.Sequelize.STRING}, email: { type: db.Sequelize.STRING}, password: { type: db.Sequelize.STRING}, sex : { type: db.Sequelize.INTEGER}, day_birth: { type: db.Sequelize.INTEGER}, month_birth: { type: db.Sequelize.INTEGER}, year_birth: { type: db.Sequelize.INTEGER} }); User.sync().success(function(){ console.log("table created") }).error(function(error){ console.log(err); }) var Post = …

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

3
SQLAlchemy: วิธีการกรองฟิลด์วันที่?
นี่คือโมเดล: class User(Base): ... birthday = Column(Date, index=True) #in database it's like '1987-01-17' ... ฉันต้องการกรองระหว่างวันที่สองวันเช่นเลือกผู้ใช้ทั้งหมดในช่วง 18-30 ปี จะใช้กับ SQLAlchemy ได้อย่างไร? ฉันนึกถึง: query = DBSession.query(User).filter( and_(User.birthday &gt;= '1988-01-17', User.birthday &lt;= '1985-01-17') ) # means age &gt;= 24 and age &lt;= 27 ฉันรู้ว่าสิ่งนี้ไม่ถูกต้อง แต่จะแก้ไขอย่างไร?
105 python  sql  database  orm  sqlalchemy 

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

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

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