Kotlin

    [SpringBoot][Kotlin] org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing 에러

    [SpringBoot][Kotlin] org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing 에러

    실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 강의를 들으면 주문서비스 테스트를 작성하고, 실행했는데 에러를 만났다. 반가워~👋 에러메세지 org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing : com.jpabook.jpashop.domain.Order.delivery -> com.jpabook.jpashop.domain.Delivery; nested exception is java.la..

    [JUnit5][SpringBoot][Kotlin] Exception테스트하기 (assertThrows)

    [JUnit5][SpringBoot][Kotlin] Exception테스트하기 (assertThrows)

    JUnit4 Junit4에서 exception 테스트는 @Test(expected=기대하는예외)를 통해 가능하다. (JUnit5와 비교하기 위한 예시코드이므로 정확하진 않을 수 있음) @Test(expected = NotEnoughStockException::class) fun 상품주문_재고수량초과() { val member = createMember("사용자") val book = createBook("도서명", 10000, 10, "저자명", "12345") val orderCount = 11 orderService.order(member.id!!, book.id!!, orderCount) fail("예외가 발생해야 한다."); } JUnit5 @Test에 expected를 쓸 수 없게 되어있어 다른..

    [Spring Boot] Error creating bean with name 'entityManagerFactory' defined in class path resource

    [Spring Boot] Error creating bean with name 'entityManagerFactory' defined in class path resource

    Spring Boot, Kotlin, JPA, H2를 이용해서 API 테스트코드를 작성중이었다. Error creating bean with name 'entityManagerFactory' defined in class path resource Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.service.spi.ServiceExcepti..

    [Android][Kotlin] ViewBinding 사용하기

    기존에 findViewById로 사용하던 것은 속도도 느리고, NullPointException(?맞나) 이 생길 수도 있는 문제가 있었다 그리고 매번 id를 확인해야해서 귀찮았다ㅜㅜ ViewBinding은 레이아웃 생성시 ViewBinding 관련 클래스가 내부에 자동생성되어, 생성한 객체로 해당 레이아웃의 위젯에 접근을 할 수 있다! 설정 build.gradle (app) android { buildFeatures { viewBinding = true } } 이제 ViewBinding을 사용할 수 있게 되었다! 레이아웃 생성시 마다 레이아웃 이름 + Binding 이라는 이름을 갖는 ViewBinding 클래스가 생기는 것임을 기억하자 이제 코드에서 사용해보자 예제 activity_main.xml M..