코딩기록 저장소 🐕/스스로 프로젝트와 연습 28

Query Dsl 적용해보기②

조회를 해보도록 하겠습니다!  ⭐ ItemCustomerRepository에 getItem메서드를 정의해줍니다. 여기서 주의할사항!  List getItem(); 이것만 쓰면getItem못찾는다는 오류가 뜹니다.😭 무엇이 문제인지 한참 헤맸습니다.더보기Application run failed org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'itemController' defined in file [C:\Users\kimse\Desktop\fighting\challenge\jpa\out\production\classes\start\jpa\controller\ItemControlle..

Query Dsl 적용해보기①🥲

QueryDsl을 스스로 공부하려다보니 적용하는데 쉽지않았습니다😭    ⭐Build.gradle구글링을 많이 해봤지만 계속적인 오류가 났습니다.layout.buildDirectory.dir("generated/querydsl").get().asFile이부분을 def querydslDir = "$buildDir/generated/querydsl" 이렇게 많이 사용하셨지만 저는 오류가 나서 아래처럼 바꾸니 정상적으로 실행이됐습니다!Gradle 5.0 이후, Gradle은 빌드 디렉토리와 관련된 파일 경로를 처리하는 방식이 변경되었다고합니다.  plugins { id 'com.ewerk.gradle.plugins.querydsl' version '1.0.10'}configurations { compil..

프로젝트(SpringBoot)에 JPA적용해보기6 삭제와 @Transactional

회원 삭제 (난이도 ⭐) 삭제할 수 있는 방법이 다양하게 있는데요 저는 단순하게 id를 받아와서 삭제하는걸로 해봤습니다.  ☁️ Repositoryfind메서드로 id를 먼저 찾아줍니다.member가 null이 아니면 remove로 memer를 삭제시켜줍니다.// 삭제 메소드public void delete(Long id) { Member member = em.find(Member.class, id); if (member != null) { em.remove(member); }} ☁️ Service삭제에서도 필수로 @Transactional어노테이션을 사용해줘야합니다 깜빡하고 안써서 There was an unexpected error (type=Internal Server ..

프로젝트(SpringBoot)에 JPA적용해보기5 🤤

오늘은 회원 수정을 해보려고합니다.(난이도 ⭐⭐⭐) JPA가 아직 서툴다보니 수정에서 시간이 꽤 걸렸습니다. 강의를 더 사서 들어봐야하나🥲  ✏️Repository(수정)EntityManager의 createQuery() 메서드를 사용하여 update쿼리를 작성했습니다.찾아보니 @Modifying 어노테이션을 사용하여 수정을 많이 하는것같더라구요 좀 더 공부해서 적용해보겠습니다public int update(Member member) { return em.createQuery("update Member m set m.name = :name, m.age = :age, m.pw = :pw where m.id = :id") .setParameter("name", member.getNa..

프로젝트(SpringBoot)에 JPA적용해보기4 🫡

로그인 로그아웃🐸🐸🐸 (난이도 ⭐⭐)   ✏️Serivce로그인이전에 작성했던 Repository에서 findByName을 사용해 비교해줍니다.HttpSession을 사용해 클라이언트를 식별합니다. 로그아웃 로그인 되어있는 여부를 확인하고 invalidate() 세션 무효화시키기 즉 로그아웃을 시킵니다// 로그인public boolean login(Member member, HttpServletRequest request) { Optional findMember = memberRepository.findByName(member.getName()); if (findMember.isPresent()) { Member foundMember = findMember.get(); ..

프로젝트(SpringBoot)에 JPA적용해보기3 ☺️

오늘은 전체회원 조회와 등록을 화면에서 볼 수 있도록 구현해보려고합니다.(난이도 ⭐)  우선 Repository를 작성해줍니다!   🍉전체회원조회(Repository)public List findAll() { return em.createQuery("select m from Member m", Member.class).getResultList();}   🍉 Service@Overridepublic List findMember() { return memberRepository.findAll();}  🍉 Controllermodel에 담아서 member의 정보를 볼 수 있게 해줍니다. 뷰에서 해당 정보를 사용할 수 있습니다.@GetMapping(value ="/check")public Str..

JPA P6spy 사용해보기🫡

jpa에서 꿀팁이라는 라이브러리 p6spyP6spy는 JPA가 DB에 날리는 쿼리문을 보기 좋은 형태로 로그로 찍어주는 라이브러리라고합니다!    springboot버전을 잘확인하고 p6spy버전을 넣어야합니다. boot버전이 3.2.5를 사용하면서 p6spy버전을 낮은걸 써서 계속 로그에 왜안뜨지???😭했습니다.      1.9.0버전을 넣어줘야합니다! 코끼리 새로고침 꼭 해줘야합니다implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0'  application.yml은 이렇게 해주었습니다!logging: level: org.hibernate.SQL: debug org.hibernate.type: trace   실..

프로젝트(SpringBoot)에 JPA적용해보기2🥲

JPA를 처음 적용해보려하니 많이 어렵네요🥲🥲🥲🥲🥲      조금씩 하나씩 해보고있습니다.이어서 Repository와 Test를 해봤습니다!   저번글에 Entity member클래스에  @GeneragtedValue를 안넣어줬더라구요!엔터티의 기본 키(primary key) 필드에 대한 값을 자동으로 생성하기 위해 사용됩니다. oracle에서 사용했던 시퀀스(sequence)@Id@GeneratedValue(strategy = GenerationType.AUTO)@Column(name = "MEMBER_ID")private Long id;    1. Repository를 생성해줍니다! @PersistenceContext 어노테이션: 엔티티 매니저를 주입받기 위해 사용됩니다. insert와 se..

프로젝트(SpringBoot)에 JPA적용해보기😌

프로젝트를 jpa와 mysql을 사용해서 해보려고 합니다! 1. 아래 URL로 들어가 springboot프로젝트를 생성해줍니다!https://start.spring.io/ Gradle - GroovyJava3.2.5Group: study(원하는대로)Artifact: jpa(원하는대로)jarjdk17Dependenciesspringweblombokmysql driverjpathymeleaf요정도 추가해줬습니다. GENERATE를 클릭하면 다운로드가 되면 압축을 풀고 실행을 시켜줍니다! 2. build.gradle확인 제가 따로 추가한건 jasypt입니다.dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jp..