개발/java
-
-
-
hashMap 키값 없이 불러오기개발/java 2016. 1. 29. 09:24
import java.util.HashMap; import org.junit.Test; public class TEST { @Test public void tttt(){ HashMap h = new HashMap(); h.put("1", "a"); h.put("2", "b"); h.put("3", "c"); h.put("4", "d"); h.put("5", "e"); h.put("6", "f"); for (String mapkey : h.keySet()){ System.out.println("key:"+mapkey+",value:"+h.get(mapkey)); } } }
-
-
JPA 기본키 저장개발/java 2015. 12. 28. 17:17
1. IDENTITY 전략@Entity public class Board { @Id @GeneratedValue(strategy GenerationType.IDENTITY) private Long id; } 엔티티가 영속상태가 되려면 식별자가 필요함.IDENTITY 전략은 데이터베이스에 저장한 후에 식별자값을 구할수 있으므로 em.persist() 를 호출함과 동시 INSERT SQL이 동작한다.트랜잭션을 지원하는 쓰기 지연이 동작하지 않음. 2. SEQUENCE 전략 @Entity @SequenceGenerator ( name "BOARD_SEQ_GENERATOR", sequenceName " BOARD_SEQ", //매핑할 데이터베이스 시퀀스 이름 initialValue = 1, allocationS..
-
JPA update 변경감지개발/java 2015. 12. 28. 15:48
JPA 는 영속성 컨텍스트에 보관할때 최초 상태를 복사해서 저장해두는데 이것을 스냅샷이라한다.그리고 플러시 시점에 스냅샷과 엔티티를 비교해서 변경된 엔티티를 찾는다. em.find() 로 member 를 찾을시 1차캐시에 저장함과 동시에 최초상태를 저장해둠.1. 엔티티와 스법삿을 비교해서 변경된 엔티티를 찾는다.2. 변경된 엔티티가 있으면 수정 쿼리를 생성해서 쓰기 지연 SQL 저장소에 보낸다.3. 쓰기 지연 저장소의 SQL을 데이터베이스에 보낸다.4. 데이터베이스 트랜잭션을 커밋한다. 변정 감지는 영속성 컨텍스트가 관리하는 영속 상태의 엔티티에만 적용된다.비영속, 준영속처럼 영속성 컨텍스트의 관리를 받지 못하는 엔티티는 값을 변경해도 데이터베이스에 반영되지 않는다. 만약 수정자를 age와 name만 변..
-
엔티티의 생명주기개발/java 2015. 12. 28. 15:23
1. 비영속 @Entity 상태의 객체를Member member = new Member(); 로 생성후member.setId("momo")member.setAge(24)로 수정한다고 하여도 아직 컨텍스트에 포함되지않은 비영속 상태이다 2. 영속 위에 member 엔티티가 영속상태(영속성컨텍스트가 관리하는 엔티티)로 만드려면엔티티 매니저를 통해서 영속화 시켜야한다.ex 1 ) em.persist(member)ex 2 ) em.find(Member.class,member.getId()) 3. 준영속 준영속 상태는 영속성 컨텍스트가 관리하던 영속상태의 엔티티를영속성컨텍스트가 관리하지 않을시 준영속으로 변경시 준영속상태가됨 ex 1 ) em.detach(member) //하나의 엔티티를 준영속으로 변경하기ex ..