git push하는데, pull부터 받으라고 오류가 뜬다. (error:failed to push some refs to.....) 그래서 pull부터 받으려고 하는데, Not possible to fast-forward 오류 발생.. 검색해보니, 원인이 내가 브랜치에 커밋하고, 마스터 브랜치에 머지해버려서 발생한 것 같았다. git bash에서 git pull origin master --rebase 명령어 입력하니까, 정상적으로 pull받아졌다. 그렇게 하고 나서 다시 push하니 잘 됐다!!
디비버 오라클 연결 오류(ORA-12514) (tistory.com) > 그래서 오류. C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN listener.ora 파일에 (SID_LIST = 안에 (SID_DESC = (SID_NAME = XE) (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server) ) 추가.. 서비스에서 OracleServiceXE, OracleXETNSListener 둘다 끄고, Service, Listener 순서로 다시 재시작 이제 된다..ㅠㅠㅠ
화면에서는 엔티티를 사용하지 않고 DTO를 사용한다. persistence 티어(엔티티) busniess 티어 presentation 티어(DTO) 티어가 다르니 서로 연관이 없고 매핑이 되지 않는다. 엔티티에 create생성자를 지우고 id같은 시퀀스값을 제외, 화면에서 받을 수 있는 것들만 생성자로 만들어서 @Builder 어노테이션을 붙여준다. => 빌더패턴 안에 있는 내용이 다 전달되어야지만 객체가 만들어진다. Entity : 화면에서 받을 것만 생성자로 제작 후 @Builder 엔티티에서 빌더패턴으로 생성자를 만들면 알아서 static으로 바뀐 다음에, xxx.builder를 쓰는 것임. DTO에서는 화면에서 전달받은 것을 엔티티로 바꿔줘야지 레포지토리에 등록이 됨. 영속성 컨텍스트에 전달이 됨..
엔티티를 수정하거나 건드렸으면 반드시 maven > lifecycle > compile 해주어야 함. 이거를 해줘야 쿼리dsl에서 생기는 Q엔티티들이 생긴다. fetch는 list fetchOne은 해당 타입으로 결과가 하나가 나옴 DTO로 리턴하는 방법 화면에서는 엔티티를 사용하면 안됨. 엔티티는 서비스단까지 사용하는 것임. 서비스의 리턴타입은 dto여야 함. 서비스에서의 리턴타입은 dto 엔티티는 서비스 메소드안에서만 쓰고 결과는 dto로 나와야 함. dto로 화면에 나와야 함. 엔티티가 나가면 오류생김. 엔티티를 기준으로 결과를 조회했을 때 조회한 결과를 바로 DTO에 넣어서 DTO로 리턴을 한다. jpql에서는 직접 소속을 다 알려줘야 함. 위 과정을 queryDsl은 dto에 생성자위에 @Que..
th:with= 태그안에서 사용할 변수 선언
쿼리DSL를 쓰기 위해서는 pom.xml에 추가하기(maven) dependency 추가 com.querydsl querydsl-jpa com.querydsl querydsl-apt plugin 추가(plugins태그 안에) com.mysema.maven apt-maven-plugin 1.1.3 process target/generated-sources/java com.querydsl.apt.jpa.JPAAnnotationProcessor Maven > Lifecycle > compile 해야 함..! 쿼리dsl은 build를 시켜야 사용할 수 있음. 엔티티가 다 인식이 되어서 Q가 붙는다. >> querydsl에서 사용하는 객체 엔티티들을 빌드를 통해서 따로 만들어 놓는다. (target에서 실제 경로..
레포지토리가 만들어주는 메소드가 아닌 쿼리메소드로 쓰기엔 너무 길어지거나 불가능할 땐, 쿼리 어노테이션의 JPQL을 사용함. mybatis는 영속성 컨텍스트 없음. mybatis와 jpa같이 사용 가능. xml에 있는 쿼리를 mapper에서 실행하고 mapper를 사용하면 됨. 끝. mapper interface를 dao에서 사용함. dao가 jpa에서는 repository로 대체가 된다. 커스텀레포지토리 spring data jpa, 순수 jpa랑 같이 써야 할 때 jpa랑 mybatis랑 같이 써야 할 때,.... 우리가 직접 interface를 따로 만들어서 레포지토리에 상속시켜주는 것임.. ** mybatis 설정 config > MyBatisConfig application.properties ..
여기서 양방향이라고 가정하면, Owner.java pet -> owner owner -> pet 단방향2개 >> 연관관계의 주인을 찾아야 한다. select일 때는 상관없으나, insert, update, delete일 경우, 복잡성이 증가 하기 때문 pet안에 있는 owner_id(fk)를 관리하는 객체를 연관관계의 주인이라고 하며, owner객체가 연관관계의 주인이다! pet안에 있는 owner를 통해서만 insert, update, delete 접근할 수 있게 해준다. 반대방향으로 접근하지 못하게 한다. mappedBy = "owner"
pet에서만 owner에 접근 가능 다대일 연관관계 단방향 관계(n:1) pet은 여러마리고 owner 1명 >> @ManyToOne pet을 호출했을 때 거기에 있는 주인도 쓸 수 있다. @JoinColumn(name = "OWNER_ID") name에는 엔티티의 pk 컬럼명을 써줘야 함. 즉시로딩(EAGER) : 미리 다 로딩을 해놓기 때문에 필요한지 필요하지 않은지 모르니까 일단 다 조인해서 가져옴. 성능이 안 좋다. 실무에서 사용금지! 지연로딩(LAZY) : 내가 필요할 때 다시 쿼리문이 나가는 것. 로딩을 fetch라는 옵션으로 줄 수 있다. 지연로딩 : 기존의 엔티티를 상속받은 proxy객체가 들어가 있음. proxy에는 id값만 들어가 있고 나머지 컬럼은 null임. 즉시로딩 : 처음에 싹다..