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使用
B. 一对多:一方添加多方的Set集合
注解:@OneToMany和@JoinColumn指定多方的外键名
Xml:
C. 多对一:在多方加外键
注解:@ManyToOne
Xml:
注:一对多、多对一的双向关系,交给多方维护关系,在@OneToMany设置mappedBy
属性,xml在
D. 多对多:
单向:
注解:在维护集合上@ManyToMany,@JoinTable指定中间表名和列名,
JoinColumns、JoinColumn、inverseJoinColumn
Xml:
双向:
注解:单向的基础上在另一边的集合设置@ManyToMany(mappedBy="")
Xml:另一边也设置
E. 组件映射:作为表的一部分的Bean,不作为实体,如学生证作为学生实体的一部分;
实体中的组件引用加@Embedded
Xml中用
注:(1)双向关联mappedBy属性必须设定,xml用
表示关系由对方主导;
(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

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











SpringBoot 프로젝트 서문에 Hibernate 통합하기 Hibernate는 지속성 작업을 용이하게 하기 위해 Java 객체를 데이터베이스 테이블에 매핑할 수 있는 널리 사용되는 ORM(Object Relational Mapping) 프레임워크입니다. SpringBoot 프로젝트에서 Hibernate를 통합하면 데이터베이스 작업을 더 쉽게 수행하는 데 도움이 될 수 있습니다. 이 기사에서는 SpringBoot 프로젝트에 Hibernate를 통합하는 방법을 소개하고 해당 예제를 제공합니다. 1.종속성 소개pom.xml 파일에 다음 종속성을 소개합니다: org.springframework.bootspring-boot-starter-data-jpam

JPA 란 무엇입니까? JDBC와 어떻게 다른가요? JPA(JavaPersistence API)는 ORM(객체 관계형 매핑)을 위한 표준 인터페이스로, 이를 통해 Java 개발자는 데이터베이스에 대해 직접 SQL 쿼리를 작성하지 않고도 친숙한 Java 객체를 사용하여 데이터베이스를 작동할 수 있습니다. JDBC(JavaDatabaseConnectivity)는 데이터베이스에 연결하기 위한 Java의 표준 API로, 개발자가 데이터베이스를 작동하려면 SQL 문을 사용해야 합니다. JPA는 JDBC를 캡슐화하고 객체 관계형 매핑을 위한 보다 편리하고 높은 수준의 API를 제공하며 데이터 액세스 작업을 단순화합니다. JPA에서 엔터티란 무엇입니까? 실재

Java는 소프트웨어 개발 분야에서 널리 사용되는 객체 지향 프로그래밍 언어입니다. Hibernate는 Java 객체의 지속성을 관리하는 간단하고 효율적인 방법을 제공하는 인기 있는 Java 지속성 프레임워크입니다. 그러나 개발 과정에서 Hibernate 오류가 자주 발생하며, 이러한 오류로 인해 프로그램이 비정상적으로 종료되거나 불안정해질 수 있습니다. Hibernate 오류를 처리하고 방지하는 방법은 Java 개발자가 숙달해야 하는 기술이 되었습니다. 이 기사에서는 몇 가지 일반적인 Hib를 소개합니다.

ASUS의 게임용 노트북이라고 하면 가장 먼저 떠오르는 것은 Republic of Gamers입니다. 하지만 ASUS는 Republic of Gamers의 고급 게임용 노트북 외에도 Flying Fortress 시리즈의 주류 게임용 노트북도 보유하고 있습니다. 게이머들 사이에서 가장 인기가 많은 ASUS Flying Fortress 7은 어떠세요? ASUS Flying Fortress 7 ASUS의 Flying Fortress 시리즈 노트북은 견고함과 내구성에 중점을 두고 있어 게이머와 학생들 사이에서 항상 인기 있는 제품입니다. 기본 구성 먼저, 이번 플라잉 포트리스 7의 핵심 구성 몇 가지를 살펴보겠습니다. 구성표에서 가장 눈에 띄는 것은 AMD Ryzen73750H+NVIDIA GeForceGTX1660Ti 입니다.

Android 시스템과 Linux 커널은 밀접하게 관련된 두 개체이며, 둘 사이의 관계는 밀접하고 복잡합니다. Android 시스템에서 Linux 커널은 Android 시스템에 대한 기본 하드웨어 드라이버 및 시스템 호출 지원을 제공하는 중요한 역할을 합니다. 이 기사에서는 Android 시스템과 Linux 커널 간의 관계, 상호 작용 및 작동 방식을 살펴보고 몇 가지 구체적인 코드 예제를 제공합니다. 안드로이드(Android)는 리눅스 커널을 기반으로 개발된 모바일 운영체제로 스마트폰, 태블릿 등 모바일 기기에 주로 사용된다. 엘

최대 절전 모드와 mybatis의 차이점: 1. 구현 방법 2. 성능 3. 개체 관리 비교 4. 캐싱 메커니즘 자세한 소개: 1. 구현 방법인 Hibernate는 객체를 데이터베이스 테이블에 매핑하는 완전한 객체/관계형 매핑 솔루션인 반면, MyBatis는 개발자가 SQL 문과 ResultMap을 수동으로 작성해야 합니다. 2. 성능, Hibernate는 개발 속도 측면에서 가능합니다. MyBatis는 Hibernate가 DAO 레이어 등을 단순화하기 때문입니다.

Huawei Hongmeng 시스템과 Android의 관계에 대한 연구 지속적인 기술 발전으로 스마트폰은 사람들의 삶에 없어서는 안 될 부분이 되었습니다. 세계 최고의 휴대전화 제조업체 중 하나인 화웨이는 끊임없이 혁신해 왔으며 더 나은 모바일 운영 체제와 사용자 경험을 제공하기 위해 최선을 다하고 있습니다. 최근 몇 년간 미국의 화웨이 탄압으로 화웨이는 자체 운영체제 개발에 속도를 내기 시작했고, 하모니OS(HarmonyOS)가 탄생했다. 이러한 맥락에서 사람들은 홍멍 시스템과 안드로이드의 관계에 주목하기 시작했습니다. 먼저, 우리는 이해해야 합니다.

MD5를 수정하면 원본으로 간주되나요? 인터넷 시대에 독창적인 콘텐츠를 만드는 것은 중요한 가치이자 자원이 되었습니다. 그러나 다음은 독창성과 침해성에 대한 의문이다. 불법 복제 및 표절을 방지하기 위해 많은 사람들은 원본 저작물을 보호하기 위해 다양한 방법을 사용하려고 합니다. 일반적인 방법 중 하나는 MD5 알고리즘을 사용하여 작업을 수정하여 "알고리즘 보호" 효과를 얻는 것입니다. MD5(MessageDigestAlgorithm5)는 일반적으로 사용되는 메시지 다이제스트 알고리즘입니다.
