* 페이징 SuperCarDAO.java alt+enter > inject language > jpql 엔터 > 쌍따음표안에서 색깔 표시 가능 정렬을 해야 최신순으로 나옴. SuperCarTest.java (1, 10) > 1번부터 10개 뽑기(1페이지) (10, 10) > 10번부터 10개 뽑기(2페이지) * 수정(벌크연산) 하나만 수정할 때는 setter를 쓰면 되지만, 한번에 여러 개 수정할 때, ex) 자동차 금액 전체 10% 인상, 벌크 연산을 사용해야 한다. 벌크연산 : 영속성 컨텍스트를 무시하고 SQL 반영된다. 영속성 컨텍스트와의 불일치(디비만 반영된 상태) 무조건 영속성 컨텍스트를 비워주고 벌크연산을 해야 한다!! SuperCarDAO.java executeUpdate : insert, ..
스프링 프로젝트 설계중인데, 엔티티를 만들고 있는데 not null 제약조건을 주기 위해서 @Column(nullable = false)를 썼는데 다른 팀에서는 @NotNull을 준 걸 봤다. 둘다 null을 허용하지 않는 건데 뭐가 다를까? 검색검색ㄱㄱㄱ 결론적으로 nullable = false 보다 @NotNull을 추천하고 있다. @NotNull 어노테이션을 쓰면, 데이터베이스에 SQL 쿼리를 보내기 전에 예외가 발생한다. JPA의 Repository 인터페이스가 잘못된 Entity를 저장할 때, ConstraintViolationException을 발생시킨다. (그 때문에, @Valid나 @Validated 없이도 엔티티를 자연스럽게 검증할 수 있다) 물론 값이 검증에 맞지 않아도 객체를 생성하는..
인텔리제이에서 로컬로 연결했는데 잘되던 연결이.. 갑자기 안된다?!! SQL Error [12514] [08006]: Listener refused the connection with the following error: ORA-12514, TNS:listener does not currently know of service requested in connect descriptor 그래서 디비버에 들어가서 보니.. 아래처럼 뜨면서 localhost가 연결이 안되더라ㅠㅠ ORA-12514 검색 계속 해보니 1. listener가 정상적인 동작을 하지 않고 있는 경우 2. 접속하기 위한 작성된 코드의 오타 → 오라클의 SID, SERVICE_NAME은 대소문자를 반드시 구분하여 기술해야 한다. 3. 존재하지..
부팀장이 되었다.. (부팀장 역할 : ERD, 백 설계..) 9월 23일 주제 결정 : [너와농부싶어] 2030 청년 귀농 지원 제공 사이트 9월 24일(토) 스터디카페에서 만나서 벤치마킹 사이트 탐색, 프로젝트 기능 회의 진행 9월 27일 : ERD, 로직 프로세스 1차 완성 퍼블리싱 역할 분장 : 메인(헤더+푸터), 게시판(공지사항,자유게시판), 멘토홍보페이지 너무많아....헬게이트 오픈 9월 28일 : Git organization, fork받고 repository 생성 VSCode로 퍼블리싱 시작.. 벤치마킹 사이트 : 똑똑! 청년농부 https://www.rda.go.kr/young/index.do (10월 1,2,3,8,9,10일..황금연휴..모두 퍼블리싱에 쏟았다..) ~ 10월 16일까지 ..
entity manager : entity 관리 요청 하나당 entity를 만들어줌. 요청2개 -> entity 2개 만듦. 각각의 entity가 jdbc를 쓴다. jpa의 구현체가 hibernate > hibernate는 sqlsession 사용 > sqlsession에서는 jdbc를 사용 ! open session은 쓰면 사용자가 선택한 메소드에 따라서 select ~ delete까지 메소드를 적절하게 써준다. if) select 사용 시, jdbc를 통해서 preparestatement로 execute가 될 것임. exectuequery, executeupdate : 알맞는 메소드 진행될 것임. entity manager는 persistenceContext 영역을 사용함. persistenceCon..
▶ JPQL 한 개의 데이터를 조회할 때에는 JPA가 find()를 제공하지만 전체를 조회할 때에는 JPA가 제공하는 JPQL을 사용해야 한다. SQL문 뒤에는 결과 중 한 개 행에 대한 resultType을 작성해준다. 여러개 행을 가져올 때에는 getResultList()를 사용한다. ▶ JPQL 주의사항 1.엔티티명과 필드명은 대소문자를 구분한다. 2.JPQL 키워드는 대소문자를 구분하지 않는다. 3.JPQL에서 사용하는 테이블명은 클래스명이 아닌 엔티티명이다. 4.엔티티의 Alias는 필수로 작성해야 한다. 쿼리 from절에 테이블명이 아니라 엔티티명을 쓴다. @Entity(name= "zzz") 클래스명이 아니라 zzz을 사용해야 한다. 없을 때는 클래스명으로. *파라미터 바인딩 년월일만 비교하..
인텔리제이에서 쿼리를 때리면 실제로 DB에 table이 만들어질까??? @Entity : JPA에 등록됨. entity로 인식함. (@Component는 빈객체 등록하려고 붙이는 어노테이션) *@Setter는 기본적으로 만들지 말고, 회사에 물어보자. @Table(name = "TBL_NAME") > 테이블명 쓰기, 생략하면 클래스명으로 자동으로 만들어짐. //빨간 줄 없애기 setting > inspections > jpa > Unresolved database references in annotations 체크 해제 @Id > 메소드와 필드에 사용 가능, PK설정(보통 Long) @GeneratedValue > 자동으로 값 증가(autoincrement) @Column(name = "컬럼명") > 생..