Maison base de données tutoriel mysql Hibernate关系映射

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

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment intégrer Hibernate dans le projet SpringBoot Comment intégrer Hibernate dans le projet SpringBoot May 18, 2023 am 09:49 AM

Intégration d'Hibernate dans le projet SpringBoot Préface Hibernate est un framework ORM (Object Relational Mapping) populaire qui peut mapper des objets Java à des tables de base de données pour faciliter les opérations de persistance. Dans le projet SpringBoot, l'intégration d'Hibernate peut nous aider à effectuer plus facilement des opérations de base de données. Cet article présentera comment intégrer Hibernate dans le projet SpringBoot et fournira des exemples correspondants. 1.Introduire les dépendancesIntroduire les dépendances suivantes dans le fichier pom.xml : org.springframework.bootspring-boot-starter-data-jpam

Questions d'entretien Java JPA sélectionnées : Testez votre maîtrise du framework de persistance Questions d'entretien Java JPA sélectionnées : Testez votre maîtrise du framework de persistance Feb 19, 2024 pm 09:12 PM

Qu’est-ce que JPA ? En quoi est-ce différent de JDBC ? JPA (JavaPersistence API) est une interface standard pour le mappage objet-relationnel (ORM), qui permet aux développeurs Java d'utiliser des objets Java familiers pour faire fonctionner des bases de données sans écrire de requêtes SQL directement sur la base de données. JDBC (JavaDatabaseConnectivity) est l'API standard de Java pour la connexion aux bases de données. Elle oblige les développeurs à utiliser des instructions SQL pour faire fonctionner la base de données. JPA encapsule JDBC, fournit une API plus pratique et de niveau supérieur pour le mappage objet-relationnel et simplifie les opérations d'accès aux données. Dans JPA, qu’est-ce qu’une entité ? entité

Erreurs Java : erreurs de mise en veille prolongée, comment les gérer et les éviter Erreurs Java : erreurs de mise en veille prolongée, comment les gérer et les éviter Jun 25, 2023 am 09:09 AM

Java est un langage de programmation orienté objet largement utilisé dans le domaine du développement de logiciels. Hibernate est un framework de persistance Java populaire qui fournit un moyen simple et efficace de gérer la persistance des objets Java. Cependant, des erreurs Hibernate sont souvent rencontrées au cours du processus de développement, et ces erreurs peuvent entraîner une fin anormale du programme ou devenir instable. Comment gérer et éviter les erreurs Hibernate est devenu une compétence que les développeurs Java doivent maîtriser. Cet article présentera quelques Hib courants

ASUS Flying Fortress 7 - Original ASUS Flying Fortress 7 - Original Jul 14, 2023 pm 10:09 PM

Lorsqu'il s'agit d'ordinateurs portables de jeu d'ASUS, la première chose qui vient à l'esprit est Republic of Gamers. Mais en plus des ordinateurs portables de jeu haut de gamme de Republic of Gamers, ASUS propose également des ordinateurs portables de jeu grand public dans la série Flying Fortress. jetez-y un œil ensemble. Que diriez-vous d'ASUS Flying Fortress 7, qui est le plus populaire parmi les joueurs. ASUS Flying Fortress 7 Les ordinateurs portables de la série Flying Fortress d'ASUS sont positionnés pour jouer facilement à des jeux à grande échelle. Ils mettent l'accent sur la robustesse et la durabilité. Ils ont toujours été un choix populaire parmi les joueurs et les étudiants. Configuration de base Tout d'abord, jetons un coup d'œil à certaines des configurations de base de ce Flying Fortress 7. Dans le tableau de configuration, la plus remarquable est AMD Ryzen73750H+NVIDIA GeForceGTX1660Ti.

Explorez la relation entre le système Android et le noyau Linux Explorez la relation entre le système Android et le noyau Linux Mar 14, 2024 pm 12:48 PM

Le système Android et le noyau Linux sont deux entités étroitement liées, et la relation entre eux est étroite et complexe. Dans le système Android, le noyau Linux joue un rôle important, fournissant les pilotes matériels sous-jacents et la prise en charge des appels système pour le système Android. Cet article explorera la relation entre le système Android et le noyau Linux, la manière dont ils interagissent et fonctionnent ensemble, et fournira quelques exemples de code spécifiques. Android est un système d'exploitation mobile développé sur la base du noyau Linux et est principalement utilisé pour les appareils mobiles tels que les smartphones et les tablettes. L

Quelles sont les différences entre hiberner et mybatis Quelles sont les différences entre hiberner et mybatis Jan 03, 2024 pm 03:35 PM

Les différences entre hibernate et mybatis : 1. Méthode de mise en œuvre ; 2. Performances 3. Comparaison de la gestion des objets ; Introduction détaillée : 1. Méthode d'implémentation, Hibernate est une solution complète de mappage objet/relationnel qui mappe les objets aux tables de base de données, tandis que MyBatis oblige les développeurs à écrire manuellement des instructions SQL et ResultMap 2. Performances, Hibernate est possible en termes de vitesse de développement Plus rapide que ; MyBatis car Hibernate simplifie la couche DAO et ainsi de suite.

Recherche sur la relation entre le système Huawei Hongmeng et Android Recherche sur la relation entre le système Huawei Hongmeng et Android Mar 23, 2024 am 11:54 AM

Recherche sur la relation entre le système Huawei Hongmeng et Android Avec le développement continu de la technologie, les smartphones sont devenus un élément indispensable de la vie des gens. En tant que l'un des principaux fabricants de téléphones mobiles au monde, Huawei innove constamment et s'engage à fournir de meilleurs systèmes d'exploitation mobiles et de meilleures expériences utilisateur. Ces dernières années, avec la suppression de Huawei par les États-Unis, Huawei a commencé à accélérer le développement de son propre système d'exploitation, et HarmonyOS a vu le jour. Dans ce contexte, les gens ont commencé à prêter attention à la relation entre le système Hongmeng et Android. Premièrement, nous devons comprendre

Le MD5 modifié sera-t-il considéré comme du contenu original ? Le MD5 modifié sera-t-il considéré comme du contenu original ? Feb 19, 2024 pm 08:04 PM

Est-il considéré comme original après la modification de md5 ? À l'ère d'Internet, la création de contenu original est devenue une valeur et une ressource importante. Cependant, ce qui s’ensuit est une remise en question de l’originalité et de la contrefaçon. Afin de prévenir le piratage et le plagiat, de nombreuses personnes tentent d'utiliser différentes méthodes pour protéger leurs œuvres originales. L'une des méthodes courantes consiste à utiliser l'algorithme MD5 pour modifier le travail afin d'obtenir l'effet de « protection par algorithme ». MD5 (MessageDigestAlgorithm5) est un algorithme de résumé de message couramment utilisé, qui peut

See all articles