springData表关系:一对多
一、编写实体类进行表关联
1、在一张表的关联属性上添加@OneToMany注解(关联属性用来记录多的一方的信息,是个集合,一般用set)
2、在另一个实体类的关联属性上添加@ManyToOne注解和 @JoinColumn(name="custid",referencedColumnName = "cust_id")注解
二、编写dao:两个dao都继承JpaRepository<实体类名,主键属性>
三、编写测试类(用法)
package cn.lijun.jpa; import cn.lijun.jpa.dao.CustomerDao2;
import cn.lijun.jpa.dao.LinkManDao;
import cn.lijun.jpa.entity.Customer2;
import cn.lijun.jpa.entity.LinkMan;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.annotation.Commit;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.transaction.annotation.Transactional; @RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class OneToManyTest {
@Autowired
private CustomerDao2 customerDao2;
@Autowired
private LinkManDao linkManDao;
@Test
@Transactional
@Commit
public void addCustomer2(){
// 1每个实体类 创建dao
//2创建Customer2对象
Customer2 customer2 = new Customer2();
customer2.setCustName("张无忌");
customer2.setCustAddress("光明顶");
customer2.setCustLevel("教主");
//3创建LinkMan对象
LinkMan linkMan1 = new LinkMan();
linkMan1.setLkmName("赵敏");
linkMan1.setLkmMobile("13111111");
LinkMan linkMan2 = new LinkMan();
linkMan2.setLkmName("小昭");
linkMan2.setLkmMobile("13166661");
LinkMan linkMan3 = new LinkMan();
linkMan3.setLkmName("灭绝师太");
linkMan3.setLkmMobile("13166661111");
// 4 配置客户和联系人之间的关系
customer2.getLinkMEN().add(linkMan1);
customer2.getLinkMEN().add(linkMan2);
customer2.getLinkMEN().add(linkMan3);
linkMan1.setCustomer(customer2);
linkMan2.setCustomer(customer2);
linkMan3.setCustomer(customer2);
//5 使用dao 把数据写入数据库
customerDao2.save(customer2);
linkManDao.save(linkMan1);
linkManDao.save(linkMan2);
linkManDao.save(linkMan3);
}
}
springData表关系:一对多的更多相关文章
- Django数据模型--表关系(一对多)
一.一对一关系 使用方法:models.ForeignKey(要关联的模型) 举例说明:年级.教师和学生 from django.db import models class Grade(models ...
- SpringData表关系:多对多
一.编写实体类配置关联关系: 1.多对多使用注解@ManyToMany配置:a. 在实体中添加一个集合属性 b.在属性上添加ManyToMany注解 c.@JoinTable 注解配置关联关系(nam ...
- springData表关系:一对一
一.编写两个实体类 1.一对一关系实现:a:使用外键关联 b:使用主键关联,两个表的主键相同 2.外键方案:配置关联关系:两个实体类互相关联,并且在关联的属性上添加一个@OneToOne代表一个对一个 ...
- Hibernate的多表关系
多表关系 一对多/多对一 O 对象 一的一方使用集合. 多的一方直接引用一的一方. R 关系型数据库 多的一方使用外键引用一的一方主键. M 映射文件: 一: <set name="& ...
- MySQL之表关系
MySQL表关系 一对多关系 一对多与多对一是一个概念,指的是一个实体的某个数据与另外一个实体的多个数据有关联关系. 举例,学校中一个学.院可以有很多的学生,而一个学生只属于某一个学院(通常情况下), ...
- MySQL约束条件 表关系建立 查询数据
约束条件 unsigned 无符号 即为非负数,用此类型可以增加数据长度 例如 tinyint最大范围是127,那tinyint unsigned 最大就可以到 127 * 2 通常用在不会出现符号的 ...
- Php Laravel框架 多表关系处理 之 Eloquent一对多关系处理
Php Laravel框架 多表关系处理 之 Eloquent一对多关系处理 本博文主要介绍 Laravel 框架中 Eloquent 对一对多关系的处理以及在 Laravel Administra ...
- Python之路第十三天,高级(7)-详述数据库一对多,多对多表关系的设计以及如何查询
一对多表设计和查询方法 #!/usr/bin/env python3 # Author: Zhangxunan from sqlalchemy import create_engine from sq ...
- EF5+MVC4系列(1) Podwerdesigner15.1设计数据库;PD中间表和EF实体模型设计器生成中间表的区别;EF5.0 表关系插入数据(一对多,多对多)
在上一篇文章中, http://www.cnblogs.com/joeylee/p/3790980.html 我们用 PD15.1 来设计了数据库,并且生成 了sql数据库,现在我们用 vs2013 ...
随机推荐
- pytorch 中交叉熵损失实现方法
- anaconda 使用conda命令创建虚拟环境
1.首先在所在系统中安装Anaconda.可以打开命令行输入conda -V检验是否安装以及当前conda的版本. 2.conda常用的命令. 1)conda list 查看安装了哪些包. 2)con ...
- spark中的pair rdd,看这一篇就够了
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是spark专题的第四篇文章,我们一起来看下Pair RDD. 定义 在之前的文章当中,我们已经熟悉了RDD的相关概念,也了解了RDD基 ...
- python信息收集(一)
在渗透测试初期,需要进行大量的信息收集.一般情况下,信息收集可以分为两大类----被动信息收集和主动信息收集. 其中,被动信息收集主要是通过各种公开的渠道来获取目标系统的信息,例如:站 ...
- JavaScript和php数组的定义
JavaScript: var arr=[值1,值2,值3]; //隐式创建 var arr=new Array(值1,值2,值3); //直接实例化 ...
- 对于WebP格式入门解读
因为项目中需要用到大量动画效果,前期尝试过几种方案,比如GIF.帧动画.lottie.SVGA等格式的动画渲染方案,发现都存在各式各样的问题.比如: 1,GIF格式.5秒的动画,一张图大小可能就会达到 ...
- Linux网络服务第四章部署yum仓库
第四章部署yum仓库服务 1.笔记 systemctl start 命令 :重启 systemctl enable 命令 :开机自启动 netstat -anput | grep 命令:查看是否开启 ...
- bfs—Catch That Cow—poj3278
Catch That Cow Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 87152 Accepted: 27344 ...
- 基于opencv的人脸识别程序
1. 解析opencv自带人脸识别源码(……/opencv-3.1.0/samples/cpp/facedetect.cpp) @ 操作系统:Ubuntu 15.04 OpenCV版本:3.1.0 # ...
- Codeforces 1291 Round #616 (Div. 2) B
B. Array Sharpening time limit per test1 second memory limit per test256 megabytes inputstandard inp ...