국비수업/수업정리
ORM
밀김
2023. 7. 10. 15:10
728x90
- jdbc는 통일된 api만 제공
- JPA : java persistence API
- 이렇게 하게 되면 데이터,스키마 sql 파일 지워도된다
public interface MenuRepository extends JpaRepository <Menu, Long>{
}
//api 엔티티
//그리고 엔티티에 가서는 @Entity랑 @Id 어노테이션만 붙여주면 된다
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Entity
public class Menu {
@Id
private Integer id;
private String korName;
private String engName;
private Integer price;
private String img;
private Date regDate;
//이런식으로...
- mybatis 쓸때는 mapper만들고 쿼리문 짜고 그랬는데 이제는 그럴필요 X
- 이과정을 해주면 자동적으로 repository 역할을 하게 된다
(확인하는 방법은 로컬호스트/h2-console 들어간다음에 커넥트하고 menu 누르면 3000원이 들어가있다)
@Component
public class DataLoader implements CommandLineRunner{
@Autowired
private MenuRepository repository;
@Override
public void run(String... args) throws Exception {
Menu menu = Menu
.builder()
.id(1L)
.korName("아메리카노")
.price(3000)
.regMemberId(1)
.build();
}
- 우리는 지금까지 Repository 만들면 -> mapper에 Repository 에 만든 메서드마다 mapper에서 쿼리문을 짜줬어야 했는데 ! ORM 으로 오면서 레퍼지토리를 만들지 않아도
- 10개의 컨텐트만 뽑는 방법 (딱 10개만 나온다)
@Override
public List<Menu> getList() {
Pageable pageable = PageRequest.of(0, 10);
return repository.findAll(pageable).getContent();
}
728x90