suchen
HeimDatenbankMySQL-TutorialHibernate关系映射

Hibernate关系映射

Jun 07, 2016 pm 02:50 PM
hibernate关系原创映射

本文为博主原创,允许转载,但请声明原文地址:http://www.coselding.cn/blog/8/8-140.html 1、关系映射: A.一对一:主键关联:主键关联 单向:外键关联 双向:外键关联或中间表 联合主键: @OneToOne:一对一关联关系,注解在对方类引用的get方法上 @Join

本文为博主原创,允许转载,但请声明原文地址:http://www.coselding.cn/blog/8/8-140.html

1、关系映射:
  A. 一对一:主键关联:主键关联
   单向:外键关联
   双向:外键关联或中间表
   联合主键:
     @OneToOne:一对一关联关系,注解在对方类引用的get方法上
     @JoinColumn:设置关联的外键名,name属性
     @PrimaryKeyJoinColumn:设置主键关联
     @JoinColumns设置联合主键
   xml使用标签,添加unique属性即可
  B. 一对多:一方添加多方的Set集合
   注解:@OneToMany和@JoinColumn指定多方的外键名
   Xml:
  C. 多对一:在多方加外键
   注解:@ManyToOne
   Xml:
   注:一对多、多对一的双向关系,交给多方维护关系,在@OneToMany设置mappedBy
   属性,xml在设置inverse="false"
  D. 多对多:
   单向:
    注解:在维护集合上@ManyToMany,@JoinTable指定中间表名和列名,
     JoinColumns、JoinColumn、inverseJoinColumn
    Xml:
   双向:
   注解:单向的基础上在另一边的集合设置@ManyToMany(mappedBy="")
   Xml:另一边也设置标签
  E. 组件映射:作为表的一部分的Bean,不作为实体,如学生证作为学生实体的一部分;
   实体中的组件引用加@Embedded
   Xml中用标签
注:(1)双向关联mappedBy属性必须设定,xml用的property-ref属性
  表示关系由对方主导;
 (2)双向关系要很注意在调用过程中可能出现实体无限循环调用的堆栈溢出的危险;
2、关联关系下的增删改查:
(1) 关联关系设置cascade级联操作,只影响增删改;
(2) 若被关联对象为一方,默认直接取出来,EAGER;
(3) 若被关联对象为多方,默认是延迟加载,LAZY;
(4) fetch设置查询读取级联操作,只影响查询操作,默认LAZY;
(5) 双向的关联关系有些操作会导致重复操作,注意设置延迟加载避免多余操作;
(6) 删除:先查询再删除,防止级联删除--破坏掉内存实体的关联关系或HQL;
3、集合映射:
(1) 常规方式:Set;
(2) List:加注解和Set一样,List是为了能够排序,@OrderBy指定排序参数;
(3) Map:key为不可重复子段(多数为主键),@MapKey;value为集合元素实体,较适用于查询;
4、继承映射:
(1) 少数属性继承关系:Single-Table,一张表存储所有类,加一个类型标记位子段;
(2) 每个类各自一张表:Table-per-Class,没法存储继承多态关系,继承多态调用麻烦,需要维护每个实体主键的唯一性;
(3) 按照继承关系,父类有表,子类也有表,但是共同属性在父表中:Joined,父表和子表要设置主键关联,维护主键唯一性,查询必须连接表,新子类要建新表;
注解:A. @Inheritance:注明继承映射,指定继承映射策略,用于父类;
      B. @DiscriminatorColumn:标明类的类型标记位,用于父类;
      C. @DiscriminatorValue("标记位值"):类类型标记位值;
5、树状映射:
 (1)对象设计:id、父亲节点引用、孩子节点集合、其他的节点内容;
 (2)表设计:id、parent_id、其他节点内容列;
 (3)设置@Entity、@Id、主键生成策略、@ManyToOne(设置外键列"parent_id")、@OneToMany(mappedBy="parent");
 (4)设置修改级联,LAZY还是EAGER具体分析才选择;
 (5)设置好对象间父子关系,存入数据库即可;
 (6)查询使用递归方式查询;

本文为博主原创,允许转载,但请声明原文地址:http://www.coselding.cn/blog/8/8-140.html

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Wie wirkt sich die MySQL -Kardinalität auf die Abfrageleistung aus?Wie wirkt sich die MySQL -Kardinalität auf die Abfrageleistung aus?Apr 14, 2025 am 12:18 AM

Die MySQL -Idium -Kardinalität hat einen signifikanten Einfluss auf die Abfrageleistung: 1. Hoher Kardinalitätsindex kann den Datenbereich effektiver einschränken und die Effizienz der Abfrage verbessern. 2. Niedriger Kardinalitätsindex kann zu einem vollständigen Tischscannen führen und die Abfrageleistung verringern. 3. Im gemeinsamen Index sollten hohe Kardinalitätssequenzen vorne platziert werden, um die Abfrage zu optimieren.

MySQL: Ressourcen und Tutorials für neue BenutzerMySQL: Ressourcen und Tutorials für neue BenutzerApr 14, 2025 am 12:16 AM

Der MySQL -Lernpfad umfasst Grundkenntnisse, Kernkonzepte, Verwendungsbeispiele und Optimierungstechniken. 1) Verstehen Sie grundlegende Konzepte wie Tabellen, Zeilen, Spalten und SQL -Abfragen. 2) Lernen Sie die Definition, die Arbeitsprinzipien und die Vorteile von MySQL kennen. 3) Master grundlegende CRUD -Operationen und fortgeschrittene Nutzung wie Indizes und gespeicherte Verfahren. 4) KON -Debugging- und Leistungsoptimierungsvorschläge, wie z. B. rationale Verwendung von Indizes und Optimierungsabfragen. In diesen Schritten haben Sie einen vollen Verständnis für die Verwendung und Optimierung von MySQL.

Reale MySQL: Beispiele und AnwendungsfälleReale MySQL: Beispiele und AnwendungsfälleApr 14, 2025 am 12:15 AM

Die realen Anwendungen von MySQL umfassen grundlegende Datenbankdesign und komplexe Abfrageoptimierung. 1) Grundnutzung: Wird zum Speichern und Verwalten von Benutzerdaten verwendet, z. B. das Einfügen, Abfragen, Aktualisieren und Löschen von Benutzerinformationen. 2) Fortgeschrittene Nutzung: Verwandte komplexe Geschäftslogik wie Auftrags- und Bestandsverwaltung von E-Commerce-Plattformen. 3) Leistungsoptimierung: Verbesserung der Leistung durch rationale Verwendung von Indizes, Partitionstabellen und Abfrage -Caches.

SQL -Befehle in MySQL: Praktische BeispieleSQL -Befehle in MySQL: Praktische BeispieleApr 14, 2025 am 12:09 AM

SQL -Befehle in MySQL können in Kategorien wie DDL, DML, DQL und DCL unterteilt werden und werden verwendet, um Datenbanken und Tabellen zu erstellen, zu ändern, zu löschen, Daten einfügen, aktualisieren, Daten löschen und komplexe Abfragebetriebe durchführen. 1. Die grundlegende Verwendung umfasst die Erstellungstabelle erstellbar, InsertInto -Daten einfügen und Abfragedaten auswählen. 2. Die erweiterte Verwendung umfasst die Zusammenarbeit mit Tabellenverbindungen, Unterabfragen und GroupBy für die Datenaggregation. 3.. Häufige Fehler wie Syntaxfehler, Datentyp -Nichtübereinstimmung und Berechtigungsprobleme können durch Syntaxprüfung, Datentypkonvertierung und Berechtigungsmanagement debuggen. 4. Vorschläge zur Leistungsoptimierung umfassen die Verwendung von Indizes, die Vermeidung vollständiger Tabellenscanning, Optimierung von Join -Operationen und Verwendung von Transaktionen, um die Datenkonsistenz sicherzustellen.

Wie geht InnoDB mit der Einhaltung der Säure um?Wie geht InnoDB mit der Einhaltung der Säure um?Apr 14, 2025 am 12:03 AM

InnoDB erreicht Atomizität durch Ungewöhnung, Konsistenz und Isolation durch Verriegelungsmechanismus und MVCC sowie Persistenz durch Redolog. 1) Atomizität: Verwenden Sie Unolog, um die Originaldaten aufzuzeichnen, um sicherzustellen, dass die Transaktion zurückgerollt werden kann. 2) Konsistenz: Stellen Sie die Datenkonsistenz durch Verriegelung auf Zeilenebene und MVCC sicher. 3) Isolierung: Unterstützt mehrere Isolationsniveaus und wird standardmäßig WiederholungSead verwendet. 4) Persistenz: Verwenden Sie Redolog, um Modifikationen aufzuzeichnen, um sicherzustellen, dass die Daten für lange Zeit gespeichert werden.

Mysqls Platz: Datenbanken und ProgrammierungMysqls Platz: Datenbanken und ProgrammierungApr 13, 2025 am 12:18 AM

Die Position von MySQL in Datenbanken und Programmierung ist sehr wichtig. Es handelt sich um ein Open -Source -Verwaltungssystem für relationale Datenbankverwaltung, das in verschiedenen Anwendungsszenarien häufig verwendet wird. 1) MySQL bietet effiziente Datenspeicher-, Organisations- und Abruffunktionen und unterstützt Systeme für Web-, Mobil- und Unternehmensebene. 2) Es verwendet eine Client-Server-Architektur, unterstützt mehrere Speichermotoren und Indexoptimierung. 3) Zu den grundlegenden Verwendungen gehören das Erstellen von Tabellen und das Einfügen von Daten, und erweiterte Verwendungen beinhalten Multi-Table-Verknüpfungen und komplexe Abfragen. 4) Häufig gestellte Fragen wie SQL -Syntaxfehler und Leistungsprobleme können durch den Befehl erklären und langsam abfragen. 5) Die Leistungsoptimierungsmethoden umfassen die rationale Verwendung von Indizes, eine optimierte Abfrage und die Verwendung von Caches. Zu den Best Practices gehört die Verwendung von Transaktionen und vorbereiteten Staten

MySQL: Von kleinen Unternehmen bis zu großen UnternehmenMySQL: Von kleinen Unternehmen bis zu großen UnternehmenApr 13, 2025 am 12:17 AM

MySQL ist für kleine und große Unternehmen geeignet. 1) Kleinunternehmen können MySQL für das grundlegende Datenmanagement verwenden, z. B. das Speichern von Kundeninformationen. 2) Große Unternehmen können MySQL verwenden, um massive Daten und komplexe Geschäftslogik zu verarbeiten, um die Abfrageleistung und die Transaktionsverarbeitung zu optimieren.

Was liest Phantom und wie verhindert InnoDB sie (Sperren des nächsten Schlägers)?Was liest Phantom und wie verhindert InnoDB sie (Sperren des nächsten Schlägers)?Apr 13, 2025 am 12:16 AM

InnoDB verhindert effektiv das Phantom-Lesen durch den Mechanismus für den nächsten Kleien. 1) Nächstschlüsselmesser kombiniert Zeilensperr- und Gap-Sperre, um Datensätze und deren Lücken zu sperren, um zu verhindern, dass neue Datensätze eingefügt werden. 2) In praktischen Anwendungen kann durch Optimierung der Abfragen und Anpassung der Isolationsstufen die Verringerungswettbewerb reduziert und die Gleichzeitleistung verbessert werden.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Leistungsstarke integrierte PHP-Entwicklungsumgebung

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung