조건식타입의 표현문자자아근~ 따옴표 (’)묶어 사용작은 따옴표를 표현하려면 연속 두개로 사용 ''숫자Long 은 LDouble 은 DFloat 은 F 를 숫자 뒤에 붙여 타입을 지정날짜DATE{d 'yyyy-mm-dd'} 형식 사용TIME {t 'hh-mm-ss'} 형식을 사용DATETIME{ts 'yyyy-mm-dd hh:mm:ss.f'} 형식을 사용BooleanTRUE , FALSE 로 표현예제문자: 'HELLO', ''She''s'숫자: 10L, 10D, 10F날짜: {d '2012-03-24'}, {t '10-11-11'}, {ts '2012-03-24 10-11-11.123'}Boolean: TRUE, FALSEENUM 과 엔티티 타입Enum패키지명을 포함한 전체 이름을 사용해야함jpabook...
@Nested class DeleteTest { @Test @DisplayName("주문에 대한 삭제시 성공의 경우 exception 이 발생하지 않아야함") void When_Delete_Expect_MethodReturnTrue() { // given as @Mock when(orderMapper.deleteSoftly(1L)).thenReturn(true); // when - then // exception 이 발생하지 않아야함 Assertions .assertThatThrownBy(() -> orderPersistence.deleteOrder(1L)) .doesNotThrowAnyException(); } }public void deleteOrder(long id) { boolean result ..
TDD에 입각하여프로젝트 진행중이다 TDD 하는 중에 빠른 테스트 코드의 통과를 위하여 별도 @Test @DisplayName("주문에 대한 삭제일 업데이트시 삭제일이 업데이트 되는지 테스트") void When_DeleteSoftly_Expect_DeletedDateUpdated() { // given as @Sql // when orderMapper.deleteSoftly(1L); Order deletedOrder = orderMapper .selectOrderNotDeleted(1L); // then assertThat(deletedOrder .getDeletedDate()).isNotNull(); } }selectOrder 메서드 말고 selectOrderNotDeleted 라는 메서드를 빠르게 ..
@Nested @Sql(scripts = {"classpath:sql/member/insert_member.sql", "classpath:sql/shippinginfo/insert_shipping_info.sql", "classpath:sql/product/insert_product.sql", "classpath:sql/order/insert_order_product.sql", "classpath:sql/order/insert_order.sql"}) class DeleteTest { @Test @DisplayName("주문에 대한 삭제일 업데이트시 true 를 반환하는지 테스트") void When_DeleteSoftly_Expect_MethodReturnTrue() { // given as @Sql /..
값 타입?엔티티의 상태를 표현하는 데 사용되는 데이터일반적으로 불변의 상태를 가짐부작용을 방지하고 보다 안전한 프로그래밍이 가능함보통 숫자, 날짜 , 복합 값을 포함값 타입 공유 참조 문제임베디드 타입 등의 값 타입이 여러 엔티티 간에 공유되는 경우 문제가 발생함예시두 개의 회원 엔티티가 동일한 주소의 인스턴스를 참조하는 경우한 회원의 주소가 변경되면 참조를 공유하는 다른 회원의 주소도 영향문제 예시member1.setHomeAddress(new Address("OldCity")); Address address = member1.getHomeAddress(); address.setCity("NewCity"); // 회원1의 주소 값을 공유해서 사용 member2.setHomeAddress(address)..
@Test public void valueTypeCollection() { Member member = new Member(); // 임베디드 값 타입 member.setHomeAddress(new Address("통영", "몽돌해수욕장", "660-123")); // 기본갑 타입 컬렉션 member .getFavoriteFoods() .add("짬뽕"); member .getFavoriteFoods() .add("짜장"); member .getFavoriteFoods() .add("탕수육"); // 임베디드 값 타입 컬렉션 member .getAddressHistory() .add(new Address("서울", "강남", "123-123")); member .getAddressHistory() .ad..