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

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


11
ไฮเบอร์เนตกับ JPA เทียบกับ JDO ข้อดีและข้อเสียของแต่ละ? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันคุ้นเคยกับ ORM เป็นแนวคิดและฉันใช้ nHibernate หลายปีที่ผ่านมาสำหรับโครงการ. NET อย่างไรก็ตามฉันไม่ได้ติดตามหัวข้อ ORM ใน Java และไม่ได้มีโอกาสใช้เครื่องมือเหล่านี้ แต่ตอนนี้ฉันอาจมีโอกาสเริ่มใช้เครื่องมือ ORM บางอย่างสำหรับหนึ่งในแอปพลิเคชันของเราในความพยายามที่จะย้ายออกจากชุดบริการเว็บดั้งเดิม ฉันมีเวลายากที่จะบอกความแตกต่างระหว่างข้อกำหนด JPA สิ่งที่คุณจะได้รับจากห้องสมุด Hibernate และสิ่งที่ JDO มีให้ ดังนั้นฉันเข้าใจว่าคำถามนี้เป็นบิตปลายเปิด แต่ฉันหวังว่าจะได้รับความคิดเห็นบางอย่างเกี่ยวกับ: ข้อดีและข้อเสียของแต่ละข้อคืออะไร? คุณต้องการแนะนำโครงการใหม่แบบใด มีเงื่อนไขบางประการหรือไม่ที่จะใช้กรอบหนึ่งกับอีกกรอบหนึ่ง
174 java  hibernate  orm  jpa  jdo 

19
Doctrine - วิธีการพิมพ์ sql จริงไม่ใช่แค่คำสั่งที่เตรียมไว้?
เรากำลังใช้ Doctrine, PHP ORM ฉันกำลังสร้างแบบสอบถามเช่นนี้: $q = Doctrine_Query::create()->select('id')->from('MyTable'); และจากนั้นในฟังก์ชั่นที่ฉันเพิ่มเข้าไปในส่วนที่มีคำสั่งและสิ่งต่าง ๆ ตามความเหมาะสมเช่นนี้ $q->where('normalisedname = ? OR name = ?', array($string, $originalString)); ต่อมาก่อนที่จะexecute()สอบถามวัตถุนั้นฉันต้องการพิมพ์ raw SQL เพื่อตรวจสอบและทำสิ่งนี้: $q->getSQLQuery(); อย่างไรก็ตามจะพิมพ์เฉพาะข้อความสั่งที่เตรียมไว้ไม่ใช่แบบสอบถามแบบเต็ม ฉันต้องการที่จะเห็นสิ่งที่มันถูกส่งไปยัง MySQL แต่แทนที่จะพิมพ์คำสั่งที่เตรียมไว้รวมถึง?ของ มีวิธีดูข้อความค้นหา "เต็ม" หรือไม่

12
จะคงคุณสมบัติของชนิดรายการ <String> ใน JPA ได้อย่างไร
วิธีที่ฉลาดที่สุดในการรับเอนทิตีที่มีฟิลด์ชนิดรายการยังคงอยู่คืออะไร Command.java package persistlistofstring; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import javax.persistence.Basic; import javax.persistence.Entity; import javax.persistence.EntityManager; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Persistence; @Entity public class Command implements Serializable { @Id @GeneratedValue(strategy = GenerationType.AUTO) Long id; @Basic List&lt;String&gt; arguments = new ArrayList&lt;String&gt;(); public static void main(String[] args) { Command …
158 java  orm  jpa 

4
ORM และ ODM ต่างกันอย่างไร
ฉันพยายามที่จะเข้าใจว่าความแตกต่างระหว่าง ORM และ ODM เท่าที่ฉันเข้าใจแนวคิด ORM (Object Relational Mapper) จะแมปความสัมพันธ์ระหว่างข้อมูลโดยที่ ODM (Object Document Mapper) เกี่ยวข้องกับเอกสาร ฉันคิดว่า mySQL เป็นตัวอย่างของ ORM และ MongoDB เป็นตัวอย่างของ ODM หรือไม่ อย่างที่ฉันแน่ใจว่าคุณเห็นฉันไม่คุ้นเคยกับทฤษฎีของแนวคิด มีคนช่วยอธิบายความแตกต่างระหว่างสองคนนี้ได้มั้ย
158 database  orm  odm 

14
เมื่อใดและเพราะเหตุใดเอนทิตี JPA ควรใช้อินเตอร์เฟสที่สามารถทำให้เป็นอนุกรมได้
คำถามอยู่ในชื่อเรื่อง ด้านล่างฉันเพิ่งอธิบายความคิดและข้อสรุปบางอย่างของฉัน เมื่อฉันมีรูปแบบโดเมนที่ง่ายมาก (3 ตารางโดยไม่มีความสัมพันธ์ใด ๆ ) องค์กรของฉันทั้งหมดไม่ได้ใช้ Serializable แต่เมื่อโมเดลโดเมนมีความซับซ้อนมากขึ้นฉันก็มี RuntimeException ซึ่งบอกว่าหนึ่งในเอนทิตีของฉันไม่ได้ใช้ Serializable ฉันใช้ Hibernate เป็นการนำ JPA ไปใช้ ฉันสงสัยว่า: มันเป็นข้อกำหนด / พฤติกรรมเฉพาะของผู้ขายหรือไม่? เกิดอะไรขึ้นกับเอนทิตีที่เป็นอนุกรมของฉัน พวกเขาควรจะเป็นแบบอนุกรมสำหรับการจัดเก็บหรือถ่ายโอน? ในขณะใดที่จำเป็นต้องทำให้เอนทิตีของฉันเป็นอนุกรม?

4
อะไรคือความแตกต่างระหว่างการเชื่อมโยง JPA และไฮเบอร์เนตแบบทิศทางเดียวและแบบสองทิศทาง
ความแตกต่างระหว่างการเชื่อมโยงแบบทิศทางเดียวและแบบสองทิศทางคืออะไร? เนื่องจากตารางที่สร้างใน db นั้นเหมือนกันทั้งหมดดังนั้นความแตกต่างเพียงอย่างเดียวที่ฉันพบคือแต่ละด้านของการเชื่อมโยงแบบสองทิศทางจะมีการอ้างถึงอีกด้านหนึ่งและไม่มีทิศทางเดียว นี่คือการเชื่อมโยงแบบทิศทางเดียว public class User { private int id; private String name; @ManyToOne @JoinColumn( name = "groupId") private Group group; } public class Group { private int id; private String name; } การเชื่อมโยงแบบสองทิศทาง public class User { private int id; private String name; @ManyToOne @JoinColumn( name = …


6
LINQ ไปยังหน่วยงานไม่รู้จักวิธีการล่าสุด จริงๆ?
ในแบบสอบถามนี้: public static IEnumerable&lt;IServerOnlineCharacter&gt; GetUpdated() { var context = DataContext.GetDataContext(); return context.ServerOnlineCharacters .OrderBy(p =&gt; p.ServerStatus.ServerDateTime) .GroupBy(p =&gt; p.RawName) .Select(p =&gt; p.Last()); } ฉันต้องเปลี่ยนมันเพื่อใช้งานได้ public static IEnumerable&lt;IServerOnlineCharacter&gt; GetUpdated() { var context = DataContext.GetDataContext(); return context.ServerOnlineCharacters .OrderByDescending(p =&gt; p.ServerStatus.ServerDateTime) .GroupBy(p =&gt; p.RawName) .Select(p =&gt; p.FirstOrDefault()); } ฉันไม่สามารถใช้p.First()เพื่อสะท้อนคำถามแรก เหตุใดจึงมีข้อ จำกัด พื้นฐานในระบบ ORM ที่แข็งแกร่งเช่นนั้น
144 c#  entity-framework  orm 

3
JPA กับ Spring Data JPA แตกต่างกันอย่างไร
ฉันสับสนเล็กน้อยเกี่ยวกับความแตกต่างระหว่าง Spring Data-JPA และ JPA ฉันรู้เกี่ยวกับ JPA ว่าเป็นข้อมูลจำเพาะสำหรับการคง Java Objects ให้กับฐานข้อมูลเชิงสัมพันธ์โดยใช้เทคโนโลยี ORM ที่เป็นที่นิยม กล่าวอีกนัยหนึ่ง JPA ให้บริการอินเทอร์เฟซและเทคโนโลยี ORM อื่น ๆ ใช้อินเทอร์เฟซที่รู้จักในฐานะผู้ให้บริการ JPA เช่นไฮเบอร์เนต ตอนนี้ Spring Data JPA คืออะไร? Spring Data JPA ได้เพิ่มฟังก์ชั่นเพิ่มเติม (การเชื่อมต่อ) ผ่าน JPA และยังคงมีการระบุไว้เท่านั้นหรือเป็นผู้ให้บริการ JPA ด้วยหรือไม่ ฉันเห็น Spring Data JPA ทำงานได้กับที่เก็บข้อมูล (เลเยอร์ DAO: ถ้าฉันไม่ผิด) ดังนั้นฉันหมายความว่ามันแตกต่างกันอย่างไรเมื่อใช้ 'Spring Data JPA + …

1
choice_set ในกวดวิชาของแอป Django นี้คืออะไร?
มีบรรทัดนี้ในบทช่วยสอน Django การเขียนแอป Django แรกของคุณตอนที่ 1 : p.choice_set.create(choice='Not much', votes=0) ถูกchoice_setเรียกเข้าสู่การดำรงอยู่ได้อย่างไรและมันคืออะไร? ฉันคิดว่าchoiceส่วนนั้นเป็นรุ่นที่เล็กกว่าของรุ่นที่Choiceใช้ในการสอน แต่มันคือchoice_setอะไร? คุณสามารถทำอย่างละเอียด? UPDATE:ขึ้นอยู่กับเบนคำตอบของผมอยู่เอกสารฉบับนี้: ความสัมพันธ์ต่อไป 'ย้อนหลัง'
144 python  django  orm 

8
ความแตกต่างระหว่างหนึ่งต่อหลายหลายต่อหนึ่งและหลายต่อหลายคน?
ตกลงดังนั้นนี่อาจเป็นคำถามเล็กน้อย แต่ฉันมีปัญหาในการมองเห็นและเข้าใจความแตกต่างและเวลาที่จะใช้แต่ละครั้ง ฉันยังไม่ชัดเจนว่าแนวคิดเช่นการแมปแบบทิศทางเดียวและแบบสองทิศทางมีผลต่อความสัมพันธ์แบบหนึ่งต่อหลาย / หลายต่อหลายครั้งอย่างไร ฉันกำลังใช้ Hibernate อยู่ตอนนี้ดังนั้นคำอธิบายใด ๆ ที่เกี่ยวข้องกับ ORM จะเป็นประโยชน์ ตัวอย่างเช่นสมมติว่าฉันมีการตั้งค่าต่อไปนี้: public class Person{ private Long personId; private Set&lt;Skill&gt; skills; //Getters and setters } public class Skill{ private Long skillId; private String skillName; //Getters and setters } ดังนั้นในกรณีนี้ฉันจะมีการทำแผนที่แบบไหน? คำตอบสำหรับตัวอย่างเฉพาะนี้ได้รับการชื่นชมอย่างแน่นอน แต่ฉันก็อยากจะเห็นภาพรวมของเวลาที่จะใช้แบบตัวต่อตัวและแบบตัวต่อตัวและเมื่อใดที่จะใช้ตารางการเข้าร่วมกับคอลัมน์การเข้าร่วมและทิศทางเดียวกับแบบสองทิศทาง

2
Entity Framework. ลบ () เทียบกับ. RemoveObject ()
คุณสามารถลบรายการออกจากฐานข้อมูลโดยใช้ EF โดยใช้สองวิธีต่อไปนี้ EntityCollection.Remove วิธีการ ObjectContext.DeleteObject วิธีการ ที่แรกก็คือบนและครั้งที่สองในนั้นEntityCollectionObjectContext ควรใช้แต่ละครั้งเมื่อใด เป็นที่ชื่นชอบมากกว่าคนอื่น ๆ ? Remove()ผลตอบแทนboolและผลตอบแทนDeleteObject()void

4
เลือกและอัปเดตเรกคอร์ดฐานข้อมูลด้วยแบบสอบถามเดียว
ฉันจะเรียกใช้คำสั่งupdateและselectคำสั่งเดียวกันได้อย่างไรquerysetแทนที่จะต้องทำสองแบบสอบถาม: - หนึ่งเพื่อเลือกวัตถุ - และหนึ่งเพื่ออัปเดตวัตถุ สิ่งที่เทียบเท่าใน SQL จะเป็นดังนี้: update my_table set field_1 = 'some value' where pk_field = some_value

30
ทำไมเราต้องการวัตถุเอนทิตี้ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ปรับปรุงคำถามนี้ ฉันต้องการเห็นการถกเถียงกันอย่างซื่อสัตย์และรอบคอบเกี่ยวกับข้อดีของกระบวนทัศน์การออกแบบแอปพลิเคชันองค์กรที่ยอมรับในปัจจุบัน ฉันไม่มั่นใจว่าควรมีวัตถุเอนทิตี โดยวัตถุเอนทิตี้ฉันหมายถึงสิ่งทั่วไปที่เรามักจะสร้างสำหรับแอปพลิเคชันของเราเช่น "บุคคล", "บัญชี", "สั่งซื้อ" ฯลฯ ปรัชญาการออกแบบปัจจุบันของฉันคือ: การเข้าถึงฐานข้อมูลทั้งหมดจะต้องสำเร็จผ่านขั้นตอนการจัดเก็บ เมื่อใดก็ตามที่คุณต้องการข้อมูลให้เรียกโพรซีเดอร์ที่เก็บไว้แล้ววนซ้ำ SqlDataReader หรือแถวใน DataTable (หมายเหตุ: ฉันได้สร้างแอพพลิเคชั่นระดับองค์กรด้วย Java EE, java folks โปรดแทนที่ค่าที่เท่าเทียมกันสำหรับตัวอย่าง. NET ของฉัน) ฉันไม่ต่อต้าน OO ฉันเขียนคลาสจำนวนมากเพื่อจุดประสงค์ที่แตกต่างกัน ฉันจะยอมรับว่าส่วนใหญ่ของชั้นเรียนที่ฉันเขียนเป็นชั้นเรียนผู้ช่วยคงที่ ฉันไม่ได้สร้างของเล่น ฉันกำลังพูดถึงแอพพลิเคชั่นธุรกรรมขนาดใหญ่และปริมาณสูงที่ติดตั้งในเครื่องหลายเครื่อง แอปพลิเคชั่นเว็บ, บริการ windows, บริการเว็บ, การโต้ตอบ b2b, คุณตั้งชื่อมัน ฉันใช้ OR Mappers แล้ว ฉันได้เขียนไม่กี่ ฉันใช้ Java …
139 sql  database  orm  entities 

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