일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- spring
- rabbitmq
- java
- 운영체제
- MongoDB
- springboot
- jwt토큰
- 소켓통신
- 단위테스트
- 소켓
- 스프링소켓통신
- CS면접
- jwt
- Mock
- 기술면접
- 자바
- 채팅구현
- cs지식
- 자바문법
- 스프링시큐리티
- 스프링
- 반효경
- Stomp
- Security
- JPA
- 테스트코드
- socket
- OS
- 스프링부트
- CS
- Today
- Total
목록JPA (4)
Dev_Henry

최근 진행한 프로젝트는 '개인 경매 플랫폼' 이었다. 해당 서비스에서는 일반적으로 생각할 수 있는 '경매'도 물론 가능하고, '역경매'라는 서비스도 제공했다. '경매'는 다르게 말하면 '판매' 카테고리로 판매글을 올리고 경매시간이 되면 다른사람들이 경매에 참여할 수 있다. '역경매'는 반대로 '구매' 카테고리다. 구매하고싶은 물건을 올리면 다른사람들이 본인 물건을 어필하며 역경매가 진행된다. 이렇게 이번 서비스에서는 '판매'와 '구매'가 존재했고, 둘 모두 '거래'라는 공통점을 가지며 공통적으로 필요한 필드도 많이 존재했다. 중복이 많이 존재하면 공간의 낭비, 코드 중복, 개발자의 귀찮음 등 다양한 문제들이 생긴다. 문제를 인지를 했으니 이것을 어떻게 효율적이게 설계할지 고민해보았다. 위 사진은 프로젝트..

현재 deal은 image를 oneToMany로 가지고있음. public abstract class Deal { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private long id; @CreatedDate private LocalDateTime createTime; @LastModifiedDate private LocalDateTime updateTime; private String title; private String content; @ManyToOne(fetch = FetchType.LAZY) private Member writer; @Enumerated(EnumType.STRING) private Category category; @El..

* 공부하기 위한 정리글로 내용이 정확하지 않거나 자세하게 설명되지 않을 수 있습니다. 스프링을 공부하면서 DB를 사용하기 위한 기술이 아주 다양하게 있다. 이전에 공부하던 책에서는 mybatis를 사용했는데 현재 공부중인 책에서는 jqa, querydsl... 뭔가 다양하게 얘기한다. 체계적으로 교육을 받은게 아닌 여러 책들, 인터넷 자료 등으로 공부를 하다보니 뭐가 다른건지도 잘 모르겠고 어떻게 사용해야할지 많이 헷갈려서 정리해보려고 한다. 자바/스프링을 하면서 디비를 이용하기 위한 방법을 찾아보면 많이 보이는 것들은 다음과 같다. JDBC, Mybatis, JDBCtemplate, JPA, Hibernate, Spring Data JPA, JPQL, Querydsl 등.. 본문에서 이것들..
Repositoy 인터페이스(JpaRepository )에서 규칙에 맞는 이름으로 메소드를 선언해두면 이름의 단어들(키워드)을 해석해서 자동으로 맞는 쿼리를 실행시켜준다.(JPQL로 변환이 된다) 보통 // find 엔티티명 by 컬럼명 // 과 같은 모양이다. ex) void deleteByName(String name); 으로 선언만 해두고 사용하면 name컬럼을 이용한 삭제 쿼리가 자동으로 수행된다. findById() 처럼 기본적인건 선언도 필요없이 쓸 수 있음. @query(" jpql문 직접 입력 ") 어노테이션을 통해 복잡한 쿼리도 가능하다. 자세한 사용법과 키워드는 공식문서 참조 https://docs.spring.io/spring-data/jpa/docs/current/..