일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- springbootH2
- 제이피큐엘쿼리
- JPAproxy
- springbootproxy
- sql
- JPA프록시
- 데이터베이트h2
- jpa
- 이해와 원리
- 스프링부트기본설정
- JPA값타입
- jpqlquery
- OSIV
- gitinitial
- httppie
- 에이치투데이터베이스
- springboot기본설정
- Open EntityManager
- JPAmapping
- javageneric
- 임베디드타입
- spring
- 자바제너릭
- JDBC connection pool
- JPA Hint & Lock
- 스프링부트
- dockercmd
- embededtype
- MySqlType
- Git
- Today
- Total
목록Java (40)
빡코
Spring Project에서 MySql 데이터베이스를 추가해주고, Main > Java 패키기와 동일한 위치에 application.yml 파일을 생성해준다. Application.yml 파일 생성 및 정보 spring: datasource: url: "jdbc:mysql://localhost/library" username: "root" password: "1234" driver-class-name: com.mysql.cj.jdbc.Driver #Java Database Connecter를 사용해서 mysql에 접근하고, #접근하려는 mysql은 localhost에 있고, #접근하려는 데이터베이스는 library이다. 예제 User Table 생성 create table user( id bigint ..
스프링부트 3.0 + java 17 build.gradle 설정 파일 plugins { id 'java' id 'org.springframework.boot' version '3.0.0' id 'io.spring.dependency-management' version '1.1.0' } group = 'study' version = '0.0.1-SNAPSHOT' sourceCompatibility = '17' configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-s..
새로운 엔티티를 판단하는 기본전략 -식별자가 객체일 때 null로 판단 > 새로운 것으로 판단 -식별자가 자바 기본타입일 때 0으로 판단 ex) private long id ; 자바의 기본형이기 때문에 객체가 아니고, Null을 넣을 수 없기 때문에 0으로 판다 - Persistable인터페이스를 구현해서 판단로직 변경가능(실무에서 사용) id 값이 자동생성이 아닌 특별한 경우에 의하여 직접 채번이 된다고 가정해보자 . @Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Item { @Id private String id; public Item(String id) { this.id = id; } } @SpringB..
@Repository적용: JPA 예외를 스프링이 추상화한예외로 변환 @Transactional트랜잭션적용 JPA의 모든 변경은 트랜잭션 안에서 동작 스프링데이터 JPA는 변경(등록, 수정, 삭제) 메서드를 트랜잭션처리서 비스계층에서 트랜잭션을 시작하지 않으면 리파지토리에서 트랜잭션시작 서비스계층에서 트랜잭션을 시작하면 리파지토리는해당트랜잭션을전파받아서 사용 그래서 스프링데이터 JPA를 사용할 때트랜잭션이 없어도 데이터등록, 변경이 가능했음 (사실은 트랜잭션이 리포지토리계층에 걸려있는 것임) @Transactional(readOnly = true) 데이터를 단순히 조회만 하고 변경하지 않는 트랜잭션에서 readOnly = true옵션을 사용하면 플러시를 생략해서 약간의 성능향상을 얻을 수 있음 자세한 내..
도메인클래스컨버터 *조회용으로만 사용할 것 HTTP 파라미터로 넘어온 엔티티의 아이디로 엔티티 객체를 찾아서 바인딩 package study.datajpa.controller; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; import study.datajpa.entity.Member; import study.datajpa.repository.MemberRep..
엔티티를 생성, 변경할 때 변경한 살마과 시간을 추적하고 싶을 때 사용한다. 등록일, 수정일, 등록자, 수정자 @MappedSuperclass //속성들을 내려서 테이블에서 생성이된다. package study.datajpa.entity; import javax.persistence.Column; import javax.persistence.MappedSuperclass; import javax.persistence.PrePersist; import javax.persistence.PreUpdate; import java.time.LocalDateTime; @MappedSuperclass //속성들을 내려서 테이블에서 생성이된다. public class JpaBaseEntity { @Column(upda..