Spring69 Spring 기초 7 (Entitiy 상태) (Entitiy 영속/비영속 기능) 1. Entity의 상태 비영속(Transient) 쉽게 말하자면 new 연산자를 통해 인스턴스화 된 Entity 객체를 의미합니다. 아직 영속성 컨텍스트에 저장되지 않았기 때문에 JPA의 관리를 받지 않습니다. 영속화(Managed) .persist(entity) : 비영속 Entity를 EntityManager를 통해 영속성 컨텍스트에 저장하여 관리되고 있는 상태로 만듭니다 준영속(Detached) (not managed) .detach( entity ) 영속성 컨텍스트에 저장되어 관리되다가 분리된 상태를 의미합니다 분리 된 상태여서 객체의 값을 바꾸어도 업데이트 되지 않음 (Dirty Checking 없음) 영속 상태에서 준영속 상태로 바꾸는 방법 : .detach(entity) : 특정 Entit.. 2024. 1. 20. Spring 기초 6 (영속성) (EntityManager) ( Persistence 기능) (변경 감지(Dirty Checking)) 1. 영속성 컨테스트 ( Persistence ) 영속성, 지속성 이라는 뜻이 됩니다. 즉, Entity 객체를 효율적으로 쉽게 관리하기 위해 만들어진 공간 이제 직접 SQL을 작성하지 않아도 JPA를 사용하여 DB에 데이터를 저장, 조회, 수정, 삭제 또한 가능합니다. 2. EntityManager ( Entity를 관리 ) 영속성 컨텍스트에 접근하여 Entity 객체들을 조작하기 위해서는 EntityManager가 필요합니다. EntityManager를 사용해서 Entity를 저장, 조회, 수정,삭제 할수 있음. EntityManager는 EntityManagerFactory를 통해 생성하여 사용할 수 있습니다. 3. EntityManagerFactory EntityManagerFactory는 일반적.. 2024. 1. 20. Spring 기초 5 (Entity) 1. Entity 이해하기 JPA에서 관리되는 클래스(객). Entity 클래스는 DB의 테이블과 매핑되어 JPA에 의해 관리됩니다. 1. 일반 JAVA 프로젝트로 JPA 연습하기 build.gradle 에 // JPA 구현체인 hibernate implementation 'org.hibernate:hibernate-core:6.1.7.Final' // MySQL implementation 'mysql:mysql-connector-java:8.0.28' // 추가 + gradle => build 해주세요. resource 폴더에 -> persistance.xml 파일은 만들고, { 아이디 }! 랑 {비번}! 지워 주신다음 본인 sql 아이디 랑 비번 적어주세요. com.sparta.entity.Memo .. 2024. 1. 20. Spring 기초 4 (MVC) (JPA) (BEAN) (@Componet @Autowired) (Hibernate) 현 메모장 CONTROLLER 문제 클라스 하나로 모든 API 를 처리 하고 있음, 함수가 많아 질수록 코드가 더러워 보이고 복잡해집니다. 코드드 추가 밑 변경이 자주있는 작업인데 복잡한 코드 보면서 하는데 무리가 있음. 서버 관련 작업은 비슷하다고 해서 1컨드롤러 2서비스 3레포지터리 로 나눕니다. 3 LAYER 아키텍처라고 부릅니다. 1 컨드롤러 controller ( 클라이언트의 요청 API/URL 받는것) 클라이언트의 요청을 받습니다. 요청에 대한 로직 처리는 Service에게 전담합니다. Request 데이터가 있다면 Service에 같이 전달합니다. Service에서 처리 완료된 결과를 클라이언트에게 응답합니다. 2 서비스 service (Functions excluding DB.) 사용자의 .. 2024. 1. 20. 이전 1 ··· 13 14 15 16 17 18 다음