Sangwon Coding
Spring Boot - JPA를 이용한 CRUD 본문
UserRepositoryTest.java
package com.example.study.repository;
import com.example.study.StudyApplicationTests;
import com.example.study.model.entity.User;
import org.junit.Assert;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import javax.transaction.Transactional;
import java.time.LocalDateTime;
import java.util.Optional;
public class UserRepositoryTest extends StudyApplicationTests {
// Dependency Injection (DI)
@Autowired
private UserRepository userRepository;
@Test
public void create(){
// String sql = insert into user (%s, %s, %d) value (account, email, age);
User user = new User();
user.setAccount("TestUser03");
user.setEmail("TestUser03@gmail.com");
user.setPhoneNumber("010-3333-3333");
user.setCreatedAt(LocalDateTime.now());
user.setCreatedBy("TestUser3");
User newUser = userRepository.save(user);
System.out.println("newUser : " + newUser);
}
@Test
public void read(){
Optional<User> user = userRepository.findById(2L);
user.ifPresent(selectUser ->{
System.out.println("user : " + selectUser);
System.out.println("email : " + selectUser.getEmail());
});
}
@Test
public void update(){
Optional<User> user = userRepository.findById(2L);
user.ifPresent(selectUser ->{
selectUser.setAccount("PPPP");
selectUser.setUpdatedAt(LocalDateTime.now());
selectUser.setUpdatedBy("update method()");
userRepository.save(selectUser);
});
}
@Test
@Transactional // 실제로 DB에서 삭제되지 않게함, 단지 Test 이기 때문
public void delete(){
Optional<User> user = userRepository.findById(2L);
Assert.assertTrue(user.isPresent()); // 반드시 위의 값이 존재해야함, true
user.ifPresent(selectUser->{
userRepository.delete(selectUser);
});
Optional<User> deleteUser = userRepository.findById(2L);
if(deleteUser.isPresent()){
System.out.println("데이터 존재 : " + deleteUser.get());
}else{
System.out.println("데이터 삭제 되었음");
}
Assert.assertFalse(deleteUser.isPresent()); // 위의 값이 존재하면 안됨, false
}
}
'Spring > Spring Boot (어드민 페이지)' 카테고리의 다른 글
Spring Boot - 어드민 프로젝트를 위한 ERD 설계 (0) | 2019.11.22 |
---|---|
Spring Boot - JPA 연관관계 설정 (1) | 2019.11.22 |
Spring Boot - Entity, Repository (0) | 2019.11.21 |
Spring Boot - Lombok, JPA (0) | 2019.11.19 |
Spring Boot - RestAPI (0) | 2019.11.19 |
Comments