Page History
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
package com.psmon.springdb; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest public class JparestdemoApplicationTests { @Autowired private UserRepository userRepository; @Test public void contextLoads() { jpaTest1(); } public void jpaTest1() { // 사용자 생성 User addUser = new User(); addUser.setName("minsu"); addUser.setEmail("test@x.com"); userRepository.save(addUser); // 사용자 조회 Iterable<User> userList = userRepository.findAll(); userList.forEach(item->System.out.println(item.getName() )); } } |
...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
-- 사용자생성 INSERT INTO `spring`.`user` (`id`, `email`, `name`) VALUES (<{id:}>, <{email: >, <{name:}>); -- 사용자 조회 SELECT * FROM user |
...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
-- 그룹을 추가한다. INSERT INTO test.group_info( group_id ,name ) VALUES ( NULL -- group_id - IN int(11) ,'' -- name - IN varchar(255) ) -- 사용자를 추가할시 그룹을 지정하거나, 나중에 지정한다. INSERT INTO test.user( user_id ,email ,name ,group_id ) VALUES ( NULL -- user_id - IN int(11) ,'' -- email - IN varchar(255) ,'' -- name - IN varchar(255) ,0 -- group_id - IN int(11) ) -- 여러명을 등록할시 위 과정이 반복됩니다. --학생인 사용자만 조회시..Join을 통해 해결 select * from user join group_info gi on gi.name='학생' |
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
@Entity public class GroupInfo { @OneToMany(mappedBy = "groupInfo", cascade = {CascadeType.PERSIST},fetch=FetchType.EAGER) private Set<User> users; @Override public String toString() { String result = String.format( "GroupInfo[id=%d, name='%s']%n", id, name); if (users != null) { for(User user : users) { result += String.format( "User[id=%d, name='%s']%n", user.getId(), user.getName()); } } return result; } } public interface GroupRepository extends CrudRepository<GroupInfo, Long> { public GroupInfo findByName(String name); } |
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
GroupInfo newGroupA = new GroupInfo("학생"); Set usersA = new HashSet<User>() {{ add(new User("minsu2","min2@x.com",newGroupA)); add(new User("minsu3","min3@x.com",newGroupA)); }}; newGroupA.setUsers(usersA); GroupInfo newGroupB = new GroupInfo("선생"); Set usersB = new HashSet<User>() {{ add(new User("tom1","tom1@x.com",newGroupB)); add(new User("tom2","tom2@x.com",newGroupB)); }}; newGroupB.setUsers(usersB); groupRepository.save(new HashSet<GroupInfo>() {{ add(newGroupA); add(newGroupB); }}); GroupInfo groupInfo = groupRepository.findByName("학생"); System.out.println( String.format("학생정보: %s", groupInfo.toString() ) ); |
...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
//Test를 위해 100개의 데이터 인입 GroupInfo newGroupA = new GroupInfo("학생"); Set usersA = new HashSet<User>() {{ for(int i=0; i<100 ; i++) { String userName = String.format("minsu%d", i); String email = String.format("min%d@x.com", i); add(new User(userName,email,newGroupA)); } }}; newGroupA.setUsers(usersA); groupRepository.save(new HashSet<GroupInfo>() {{ add(newGroupA); }}); //원하는 페이지를 조회합니다.( 페이지번호 , 페이지당 처리수) PageRequest pageRequest = new PageRequest(1,10); Page<User> sPage = userPageRepo.findAll(pageRequest); System.out.println( String.format(" %d:Contents %d:Page", sPage.getNumberOfElements(),sPage.getNumber() ) ); Page<User> sPage2 = userPageRepo.findByGroupInfoName("학생", pageRequest); System.out.println( String.format(" %d:Contents %d:Page", sPage2.getNumberOfElements(),sPage2.getNumber() ) ); |
...