코틀린답게 JPA Entity 작성하기 @Entity public class Parents { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; ... } 자바에서는 일반적으로 GeneratedValue를 사용해 id를 설정하며, 별도로 id 값을 초기화하지 않습니다. @Entity data class Parents( @Id @GeneratedValue(strategy = GenerationType.IDENTITY) val id: Long?, ) { } 하지만 코틀린의 Null Safety 특성 때문에 id를 초기화하지 않고 null 상태로 둘려면 ?를 사용하여 null을 허용해야 합니다. 이는 코틀린의 Null Safety..
Comment @Getter @Entity @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Comment extends BaseEntity { private Long roomId; @Column(length = 500) private String comment; @ManyToOne(targetEntity = Member.class, fetch = FetchType.LAZY) @JoinColumn(name = "member_id") private Member member; ... } Member @Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Me..
SQL Injection 이란? 악의적인 SQL문을 실행되게 함으로써 데이터베이스를 비정상적으로 조작하는 코드 인젝션 공격 방법이다. 2017년 3월에 일어난 "여기어때" 의 대규모 개인정보 유출 사건도 SQL Injectrion 으로 인해 피해가 발생하였다. SQL Injectrion 공격은 공격은 쉬운데, 이로 인한 파급효과는 매우크다. 그렇다면 JPA는 SQL Injection 으로 부터 안전할까? SQL Injection 방어하는법 PreparedStatement 사용 Prepared Statement를 사용하면 인자를 넣어주기 전의 쿼리를 DBMS가 미리 컴파일하여 대기하므로 이후, 인자에 대해서는 쿼리가 아닌 단순 문자열로 인식하기 때문에 안전하다. JPA는 SQL Injection으로 부터 ..
@CreationTimestamp와 @CreatedDate 하이버네이트 애노테이션 자체를 점점 사용하지 않는 추세이다. 생성자 또는 필드에서 초기화하지않는경우 NullPointErexception 발생 생성자 또는 필드에서 초기화하는 경우 데이터베이스에 저장될 값과 객체값의 다르다. @CreationTimestamp, @UpdateTimestamp INSERT 쿼리가 실행될 때, 현재 시간을 값으로 사용하여 쿼리를 생성합니다. 이 값은 persist 또는 new 생성 시점이 아닌 실제 쿼리가 실행될 때(flush) 생성됩니다. @Entity public class Member { @Id @GeneratedValue(strategy = GenerationType.SEQUENCE) private Long i..
- Total
- Today
- Yesterday
- entity 검증
- 유저 스토리
- 유저 시나리오
- 구글 OpenID
- org.springframework:spring-webflux
- JPA SQL Injection
- defer-datasource-initialization
- User Scenario
- java 17
- CreatedDate
- CreationTimestamp
- HandlesTypes
- setDateFormat
- dto 위치
- 레이어드 아키텍처
- ServletContainerInitializer
- FormProperty
- 구글 소셜로그인
- @Converter
- Attribute Converter
- @ElementCollection
- DispatcherServletInitializer
- @FormProperty
- dto 검증
- WebFlux 의존성
- BasicBinder
- HTTPInterface
- Spring Boot 3
- feignClient
- ValidateException
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |