본문 바로가기

분류 전체보기

(297)
[JPA] 특정 칼럼을 제외하고 INSERT, UPDATE하는 방법 보통 JPA는 SAVE시에 모든 칼럼을 INSERT한다. 그럴 경우, NOT NULL로 설정된 칼럼은 기본값으로 삽입되는것이 아닌 NULL로 삽입을 시도한다. 이로 인해 에러가 발생하는데, 이럴 경우에 아예 쿼리에서 빼버려서 실행이 안되게 만들 수 있다. 쿼리에서 제외된 칼럼은 DB에 지정된 default값으로 삽입이 된다. 특정 칼럼을 제외하고 save하는 방법은 다음과 같다. @Column(insertable=false, updatable=false) private String defaultField; [출처] https://jobc.tistory.com/129
Spring JPA 2 - Spring Data JPA, Spring Data JPA CRUD [Spring] Spring JPA 2 - Spring Data JPA, Spring Data JPA CRUD Spring Data JPA Spring Data - 데이터에 접근하는 코드를 줄이기 위한 스프링 프로젝트 - DDD(Domain-Driven Design, 도메인 주도 설계)에서의 데이터 접근 계층 구성 요소인 Repository 권장 - Repository 구현은 데이터와 관련된 아키텍쳐/제품에 따라 다름(각 종류별로 프로젝트가 만들어짐) Spring Data JPA - JPA를 이용해 데이터에 접근하기 위한 라이브러리 - Respository 인터페이스를 작성하여 간단하게 Entity를 참조/갱신할 수 있음 JPA Config 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15..
Cannot make a static reference to the non-static field 오류 머리말 자바로 프로그래밍을 시작하면, 종종 'non-static field' 오류와 직면하는 경우가 발생한다. 본 포스팅에서는 해당 에러 메시지에 대해서 설명하고, 오류 상황을 해결하는 방법에 대해서 설명한다. 오래전에 작성된 포스팅인데, 티스토리 플랫폼이 리뉴얼됨에 따라 본 포스팅도 새롭게 리뉴얼해서 작성했다. Cannot make a static reference to the non-static field error 자바는 객체지향 언어로써 보다 완벽한 객체지향 프로그래밍을 위해 탄생한 언어이다. 자바 코드를 컴파일 함으로써 클래스 파일을 생성하고, 컴파일된 클래스 파일을 실행함으로써 자바 코드는 실행된다. 여기서, 컴파일되는 순서가 객체의 멤버에 따라 다르기 때문에 해당 오류가 발생한다. 아래의 예..
브랜치 삭제로 인한 PR Close, Reopen 방법 git push -f origin 0abcdef:my-feature #pushing the old commit the PR has been closed with (또는 git push -f origin 0abcdef:refs/head/my-feature) Reopen the PR. git push -f origin 1234567:my-feature #pushing the latest commit [참고] https://gist.github.com/robertpainsi/2c42c15f1ce6dab03a0675348edd4e2c
[Mysql/Mac] root 비밀번호 분실 시 초기화 프로젝트를 진행할 때 매일 RDS에 연결해서 쓴터라 오랜만에 root 계정의 DB에 접속했다. 역시 인간이란 망각의 동물..^^ 비밀번호를 잊어버리고 말았다! 비밀번호를 너무 자주 잊어버리는 탓에.. 기억하기위해 포스팅을 해보고자 한다. 개발환경 - Mac OS - homebrew로 mysql 설치 - mysql 버전: 8.0.16 비밀번호 초기화 및 변경 과정 1. mysql bin 파일이 있는 폴더로 이동한다. 보통은 /usr/local/mysql/bin 의 경로에 파일이 있지만 homebrew로 mysql을 설치했다면 경로가 조금 달라진다. /usr/local/opt/mysql/bin 로 이동한다. 2. mysql 데몬을 종료한다. 만약 켜져있다면 mysql.server stop 으로 종료시킨다. ..
Spring Boot - static 변수에서 @Value Annotation 사용 Spring Boot에서는 초기화 과정에서 컴포넌트를 주입할 때, 어플리케이션에 대한 Key/Value 형태의 설정을 클래스 내 변수에 값을 넣어주는 @Value Annotation이 존재한다. 이러한 설정은 application.properties 또는 application.yml 과 같은 파일에서 다음과 같은 형식으로 관리할 수 있다. 예) application.properties application.version = v1.0.2 예) application.yml application version: v1.0.2 이러한 방식을 사용하여 아마존 서비스와 같이 다른 3rd party 서비스를 사용할 때 Access Key 또는 Secret Key 같은 설정을 유용하게 할 수 있다. 또한, Spring ..
[JPA] 다양한 연관관계 매핑 - @OneToMany @ManyToOne @OneToOne @ManyToOne 인프런에서 에서 김영한님의 자바 ORM 표준 JPA 프로그래밍 - 기본편을 듣고 쓴 정리 글입니다. https://www.inflearn.com/course/ORM-JPA-Basic 자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자신있게 JPA를 사용할 수 있습니다. 초급 웹 개발 서버 데이터베이스 프레임워크 및 라이브러리 프로그래밍 언어 서비스 개발 Java JPA 스프링 데이터 JPA 온라인 강의 www.inflearn.com 평소에 Spring Data JPA 를 썼는데, 김영한님은 JPA 자체를 강의하시더라구요. 김영한님 강의 바탕으로 Spring ..
Spring Boot profile 환경별 설정하기(YAML) Spring Boot에서 로컬, 개발, 실서비스 같은 여러 환경을 하나의 application.yml 파일에 설정하고 사용하는 방법에 대해서 알아보자. YAML 설정 하나의 application.yml 파일에 여러 환경의 설정 정보를 저장하려면 spring.profiles 를 통해 설정하면 된다. 프로파일 구분자(---)로 구분 한다. # local, dev, prod 공통 설정 server: port: 8080 tomcat: uri-encoding: UTF-8 --- spring: profiles: local datasource: url: "jdbc:mysql://test-server/test" username: "dbuser" password: "dbpass" --- spring: profiles: ..