博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何使用JPA注解标注一对多的关系
阅读量:6175 次
发布时间:2019-06-21

本文共 1405 字,大约阅读时间需要 4 分钟。

假设应用场景如下:Node与Ipqam是一对多的关系,其中,Node类对应node表如下:

CREATE TABLE `node` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

Ipqam类对应ipqam表如下:

CREATE TABLE `t_rm_ipqam` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) DEFAULT NULL, 
  `node_id` bigint(20) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `fk_reference_50` (`node_id`),
  CONSTRAINT `fk_reference_50` FOREIGN KEY (`node_id`) REFERENCES `node` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

两个类分别如下:

public class Node {
private List<Ipqam> ipqamList = Lists.newArrayList();
@OneToMany(cascade = CascadeType.REMOVE, fetch = FetchType.LAZY, mappedBy = "node")
public List<Ipqam> getIpqamList() {
return ipqamList;
}
public void setIpqamList(List<Ipqam> ipqamList) {
this.ipqamList = ipqamList;
}
}

说明

1、该类经过简化,没有全部列出代码,在此我们只关注OneToMany注解及其属性设置。

2、@OneToMany

@OneToMany指明 Node 与 Ipqam 之间的关联关系为一对多关系。

3、mappedBy=”node”

mappedBy定义类之间的双向关系。如果类之间是单向关系,不需要提供定义,如果类和类之间形成双向关系,我们就需要使用这个属性进行定义,

其他属性说明参加上篇文章:

public class Ipqam {
private Node node;//所属节点
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "node_id")
public Node getNode() {
return this.node;
}
public void setNode(Node node) {
this.node = node;
}
}

说明

@ManyToOne指明 Ipqam 和 Node 之间为多对一关系,多个 Ipqam 实例关联的都是同一个 Node 对象。

其中的属性和@OneToMany基本一样,但@ManyToOne注释的fetch属性默认值是FetchType.EAGER。

转载地址:http://pcqba.baihongyu.com/

你可能感兴趣的文章
懒汉式单例
查看>>
java递归组装树形结构
查看>>
手把手教你自己写一个模糊搜索的下拉框
查看>>
.Net文档图像处理工具包GdPicture.NET发布v14.0.30,改进PDF/OCR生成速度
查看>>
NetBSD 8.1 RC1 发布
查看>>
12个必备的JavaScript装逼技巧
查看>>
域名备案图文教程
查看>>
iOS ScrollView上的view添加悬停效果
查看>>
Spring与MQ整合简单例子
查看>>
Apache-shiro学习
查看>>
React-Redux源码分析
查看>>
页面传递参数问题
查看>>
PHP FPM源代码反刍品味之五:信号signal处理
查看>>
5G网速真的有理论上那么高吗?
查看>>
Set添加自定义方法对象如何保证唯一性
查看>>
站在巨人肩膀上的牛顿:Kubernetes和SAP Kyma
查看>>
技术工坊|浅谈区块链的Layer2扩展(北京)
查看>>
SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
查看>>
Apache和PHP结合 及 Apache默认虚拟主机
查看>>
添加自定义监控项目配置邮件告警测试告警不发邮件的问题处理
查看>>