전체 글196 [4/26 TIS] 테이블 이름은 User로 짓지 말자. 부트캠프에서 배운 내용을 가지고 복습 차원에서 가벼운 싱글 프로젝트를 시작했다. 문제는 시작하자마자 발생했다. User 엔티티를 만들고, 컨트롤러에서 Post 요청을 받아 처리하고 만들어진 엔티티를 저장하려고 하는데 시작도 전에 에러 메시지를 먼저 마주했다. Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "DROP TABLE IF EXISTS USER[*] CASCADE "; expected "identifier"; SQL statement: drop table if exists user CASCADE [42001-206] Error executing DDL "alter table stamp add con.. 2023. 4. 27. 오늘의 삽질을 기록하며 많은 분들이 그날 그날의 학습을 기록하기 위해 TIL(Today I Learned)을 작성한다. 삽질일지는 TIL과 비슷하다. 다만, 공부한 것 뿐만 아니라 내가 마주한 에러와 그 에러를 해결하기 위한 과정을 담으려고 한다. 그래서 삽질일지다. 이름은 TIL과 비슷하게 TIS다. Today I Shoveled의 줄임말이다. 나는 오늘 어떤 삽질을 했을까? 2023. 4. 26. Section 3 - Unit 6 : [Spring MVC] 트랜잭션 Review Review 에서는 학습한 내용을 다시금 기록합니다. Unit Review는 학습한 내용 중 기존에 알고 있었지만 정확하게 이해하지 못하던 정보와 새롭게 알게된 정보를 기록합니다. 추가적인 설명을 요하는 부분은 댓글로 남겨주세요. Section Review는 전반적인 Section을 되돌아보고 학습했던 시간과 과정, 내용을 총괄하여 기록합니다. Spring Framework에서의 트랜잭션 처리 트랜잭션 처리는 많은 비즈니스 로직에서 공통적으로 필요한 작업이다. 즉, AOP로 처리할 수 있다. * 선언형 방식의 트랜잭션 적용 - 애너테이션 방식의 트랜잭션 적용 트랜잭션을 적용하는 가장 간단한 방식이다. 필요한 영역에 @Transactional 애너테이션을 붙여준다. 클래스에 애너테이션을 붙이면 클래스에 작.. 2023. 4. 26. 죽이되든 밥이되든 사람들은 모르는 것을 처음 접할 때 두려움을 느낀다. 그것이 자신의 삶과 깊이 연관되어있을수록 더욱 그렇다. 그렇기 때문에 그것을 최대한 알고 접하려고 노력한다. 관련된 자료를 찾아보거나 사료를 살펴보며 자신의 이해 정도를 높이고자 한다. 나 역시 스프링을 처음 접하면서 스프링을 최대한 알고 스프링을 사용하려고 생각했다. 그러나 개발은 바다와 같아서. 알면 알수록 새로운 것들이 계속해서 나타나고, 내가 안다고 생각했던 것들 역시 깊은 이해를 수반하지 않은 경우가 많았다. 머리로는 알고 있었다. 우리가 자동차를 탈 때는 운전을 위한 최소한의 정보와 자동차를 타는 이유, 그리고 목적만 알고 탈 뿐이다. 자동차가 어떻게 작동하고 어떻게 만들어졌는지까지 알고 운전을 하는 사람은 없다. 스프링도 마찬가지다. 스프.. 2023. 4. 20. 25. 기타 해당 강의는 코드 위주로 진행됩니다. 실질적인 객체 처리를 담당하는 코드는 링크에서 확인하시길 바랍니다. * count 메서드 갯수를 세는 쿼리(COUNT)를 실행하는 메서드이다. long count() : 전체 갯수를 센다. long countByNameLike(String keyword) long count(Specification spec) : 스팩으로도 셀 수 있다. * @Query 네이티브 쿼리 @Query 애너테이션에 JPQL이 아닌 SQL을 작성하고 실행할 수 있다. @Query( value = "select * from user u where u.create_date >= date_sub(now(), interval 1 day)", nativeQuery = true) // nativeQue.. 2023. 4. 18. 24. Specification을 이용한 검색 조건 지정 해당 강의는 코드 위주로 진행됩니다. 실질적인 객체 처리를 담당하는 코드는 링크에서 확인하시길 바랍니다. * Specification 검색 조건을 생성하는 인터페이스다. Criteria를 이용해서 검색 조건을 생성한다. public interface Specification extends Serializable { @Nullable Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder builder); } 리포지토리 Specificatoin을 이용해서 검색 조건을 지정한다. List findAll(Specification spec) public interface UserRepository extends Repository { List.. 2023. 4. 18. 이전 1 ··· 18 19 20 21 22 23 24 ··· 33 다음 반응형