1...表与表之间的关系
一对一: A B 两张表 A表中的每条的记录对应的B的一条记录
:一对一关系实现方式:
1:使用外键关联
: 场景:使用客户表和客户拓展表
:在属性上 添加一个@OneToOne代表一个对一个的关系 在属性上添加@JoinColumn name 存储外键的字段 referencedColumnNm 对方表的字段名称 (可以省略)
2:使用主键关联,两个表 A B 的主键相同。
: 使用@PrimaryKeyJoinColumn 注解不需要配置属性 双方都需要添加
一对多: A B 两张表 A表中的每条的记录对应B表中多条的记录 B表中多条的记录对应A表中一条记录
:场景:客户和联系人之间 一对多 一个客户对应多个联系人
:单方:1 添加一个属性 记录多的一方的信息 应该是一个集合 hashset 2 在属性上添加一个注解 @OneToMany 3一定是多的一方记录外键 参照一的一方的主键
:多方:1 在属性上添加 注解 @ManyToOne 2 在属性上添加 @joinColumn 注解
多对多: A B 两张表 A表中的每条的记录对应B表中多条的记录 B表中的每条记录对应A表中的多条记录
:后面补充,
具体实现 :简单例子
1...pom.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 "> 5 <modelVersion>4.0.0</modelVersion> 6 7 <groupId>com.wsc</groupId> 8 <artifactId>oneToOne</artifactId> 9 <version>1.0-SNAPSHOT</version> 10 11 12 <properties> 13 <spring.version>4.2.4.RELEASE</spring.version> 14 <hibernate.version>5.0.7.Final</hibernate.version> 15 <slf4j.version>1.6.6</slf4j.version> 16 <log4j.version>1.2.12</log4j.version> 17 <c3p0.version>0.9.1.2</c3p0.version> 18 <mysql.version>5.1.6</mysql.version> 19 <maven.compiler.source>1.8</maven.compiler.source> 20 <maven.compiler.target>1.8</maven.compiler.target> 21 </properties> 22 <dependencies> 23 <dependency> 24 <groupId>junit</groupId> 25 <artifactId>junit</artifactId> 26 <version>4.12</version> 27 <scope>test</scope> 28 </dependency> 29 <!--spring start--> 30 <dependency> 31 <groupId>org.aspectj</groupId> 32 <artifactId>aspectjweaver</artifactId> 33 <version>1.6.8</version> 34 </dependency> 35 <dependency> 36 <groupId>org.springframework</groupId> 37 <artifactId>spring-aop</artifactId> 38 <version>${spring.version}</version> 39 </dependency> 40 <dependency> 41 <groupId>org.springframework</groupId> 42 <artifactId>spring-context</artifactId> 43 <version>${spring.version}</version> 44 </dependency> 45 <dependency> 46 <groupId>org.springframework</groupId> 47 <artifactId>spring-context-support</artifactId> 48 <version>${spring.version}</version> 49 </dependency> 50 <dependency> 51 <groupId>org.springframework</groupId> 52 <artifactId>spring-orm</artifactId> 53 <version>${spring.version}</version> 54 </dependency> 55 <dependency> 56 <groupId>org.springframework</groupId> 57 <artifactId>spring-beans</artifactId> 58 <version>${spring.version}</version> 59 </dependency> 60 <dependency> 61 <groupId>org.springframework</groupId> 62 <artifactId>spring-core</artifactId> 63 <version>${spring.version}</version> 64 </dependency> 65 <!--spring end--> 66 <!--hibernate start--> 67 <dependency> 68 <groupId>org.hibernate</groupId> 69 <artifactId>hibernate-core</artifactId> 70 <version>${hibernate.version}</version> 71 </dependency> 72 <dependency> 73 <groupId>org.hibernate</groupId> 74 <artifactId>hibernate-entitymanager</artifactId> 75 <version>${hibernate.version}</version> 76 </dependency> 77 <dependency> 78 <groupId>org.hibernate</groupId> 79 <artifactId>hibernate-validator</artifactId> 80 <version>5.2.1.Final</version> 81 </dependency> 82 <!--hibernate end--> 83 <dependency> 84 <groupId>c3p0</groupId> 85 <artifactId>c3p0</artifactId> 86 <version>${c3p0.version}</version> 87 </dependency> 88 <dependency> 89 <groupId>log4j</groupId> 90 <artifactId>log4j</artifactId> 91 <version>${log4j.version}</version> 92 </dependency> 93 <dependency> 94 <groupId>org.slf4j</groupId> 95 <artifactId>slf4j-api</artifactId> 96 <version>${slf4j.version}</version> 97 </dependency> 98 <dependency> 99 <groupId>org.slf4j</groupId> 100 <artifactId>slf4j-log4j12</artifactId> 101 <version>${slf4j.version}</version> 102 </dependency> 103 <dependency> 104 <groupId>mysql</groupId> 105 <artifactId>mysql-connector-java</artifactId> 106 <version>${mysql.version}</version> 107 </dependency> 108 <dependency> 109 <groupId>org.springframework.data</groupId> 110 <artifactId>spring-data-jpa</artifactId> 111 <version>1.9.0.RELEASE</version> 112 </dependency> 113 <dependency> 114 <groupId>org.springframework</groupId> 115 <artifactId>spring-test</artifactId> 116 <version>4.2.4.RELEASE</version> 117 </dependency> 118 <dependency> 119 <groupId>javax.el</groupId> 120 <artifactId>javax.el-api</artifactId> 121 <version>2.2.4</version> 122 </dependency> 123 <dependency> 124 <groupId>org.glassfish.web</groupId> 125 <artifactId>javax.el</artifactId> 126 <version>2.2.4</version> 127 </dependency> 128 </dependencies> 129 </project>