Java中的OneToMany的使用方法
时间:2021-04-20 08:56:44|栏目:JAVA代码|点击: 次
写在开头
使用jhipster声明的OneToMany在One的一方DTO中是没有与Many的DTO的映射关系的, 为了在One的一方DTO中使用Many的DTO, 使用以下三步解决此问题。
步骤
1. OneDTO 中的"mark 1"处为自己写的一对多的关系, 此处变量名称不能与实体One中相应的变量名称一致,否则编译失败。
2. OneMapper 中的"mark 2"处 uses属性添加ManyMapper。
2. OneMapper 中的"mark 3"处使用@Mapping注解声明 Entity 转 DTO 的映射关系。
Entity
@Entity
@Table(name = "one")
public class One {
...
@OneToMany(mappedBy = "one")
private Set<Many> manys = new HashSet<>();
...
public void setManys(Set<Many> manys) {
this.manys = manys;
}
public Set<Many> getManys() {
return manys;
}
}
@Entity
@Table(name = "many")
public class Many {
...
@ManyToOne
private One one;
}
DTO
public class OneDTO {
...
// mark 1
private Set<ManyDTO> manyDTOS = new HashSet<>();
...
public void setManyDTOS(Set<ManyDTO> manyDTOS) {
this.manyDTOS = manyDTOS;
}
public Set<ManyDTO> getManyDTOS() {
return manyDTOS;
}
}
public class ManyDTO {
...
private Long oneId;
...
public void setOneId(Long oneId) {
this.oneId = oneId;
}
public Long getOneId() {
return oneId;
}
}
Mapper
// mark 2
@Mapper(componentModel = "spring", uses = {ManyMapper.class})
public interface OneMapper extends EntityMapper<OneDTO, One> {
// mark 3
@Mapping(souce = "manys", target = "manyDTOS")
OneDTO toDto(One one);
...
}
@mapper(componentModel = "spring", uses = {OneMapper.class})
public interface ManyMapper extends EntityMapper<ManyDTO, Many>{
...
}
栏 目:JAVA代码
下一篇:JNDI,JTA和JMS简介
本文标题:Java中的OneToMany的使用方法
本文地址:http://www.codeinn.net/misctech/104981.html


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




