DB/JPA

JPA 관계 (@OneToOne, @OneToMany, @ManyToOne)

user-anonymous 2020. 10. 12. 17:21
728x90

*기존 StackOverflow나 다른 개발커뮤니티에 질문할때 db 테이블을 올릴때가 있다. 이때 좋은 포맷을 제공해주는 웹사이트를 찾았다. www.tablesgenerator.com/markdown_tables

 

Markdown Tables generator - TablesGenerator.com

You can import table data by uploading file in CSV format (Comma Separated Value). Most spreadsheet software, both desktop and online, allows to save tabular data in CSV format — it is usually available in the File menu under the name "Save As..." or "Ex

www.tablesgenerator.com

 

@OneToOne : 일대일  (1:1)

@OneToMany: 일대다 (1:N) 

@ManyToOne : 다대일(N:1)

 

 

JPA를 사용하여 개발하기엔 관계를 붙여주는것이 정말 중요하다. 이번 JPA를 이용하여 개발하게 되면서 DB설계의 중요성을 느끼게 되었다.  

 

 A테이블                                                                   B테이블

이렇게 된다면 A와 B 관계를 설정할때 OneToMany 어노테이션을 사용해야한다. 그리고 받아주는 값은 List로 해야한다. 

@JsonManagedRefrence

@OneToMany(mappedBy ="bVo")

private List<aTestVo> aTestVoList = new ArrayList<>();

 

그리고 B테이블 입장에서는 (bTestVo) @ManyToOne 이기 때문에  결과값은 하나밖에 없다 그러므로 List 대신 VO로 받아준다. 

@JsonBackReference
@ManyToOne(targetEntity = bTestVo .class)
@JoinColumn(name = "id", insertable = false, updatable = false)
private bTestVo bVo
;

 

 

 

 

 

 

728x90
반응형

'DB > JPA' 카테고리의 다른 글

[ JPA ] 엔티티 toString 무한 호출  (0) 2021.07.18
JPA DDL  (0) 2021.02.17
[JPA] Infinite recursion 에러 발생  (0) 2020.10.12
JPA limit  (0) 2020.10.07
JPA - @Transient  (0) 2020.09.26