반응형

개발/Spring 72

Spring multi datasource transactionManagaer 설정

아직 해결을 못해서 못 씀 키워드: Chained TransactionManager Jta TransactionManager 해결은 했음.hikari 사용해 datasource 2개 연결했더니 트랜잭션 롤백이 되지 않고 entityManager 를 통해 persist() 메소드 호출하면 바로 db 에 insert 되는 현상이 발생함.내가 datasource 설정을 잘못해서 그런 줄 알았는데 알고보니 테이블 엔진이 MyISAM 이었음. MyISAM 은 트랜잭션을 지원하지 않음. ----

개발/Spring 2019.01.14

[Spring] json에 백슬래쉬(\)가 포함된 string 을 Object 로 가져오기

spring feign 을 사용 중이었는데 response 로 json 을 받아와 feign 내부에서 jackson 을 통해 Object 로 매핑해준다. 해당 json 데이터는 원래 DB 에 들어있던 json string 이었다. "data": \"{\""id"\":\""temp"\"}\" 그래서 처음에는 매핑받는 클래스에서 다음과 같이 inner 클래스로 해당 json string 까지 알아서 매핑되도록 했었다. public class Parent { ... private Data data; ... public class Data { private String id; ... } } 그런데 파싱을 할 수 없다고 오류가 발생했다. (오류는 기억이 안나는데 재현하기 귀찮음) json 에 data 키를 매핑 ..

개발/Spring 2018.11.22

[Spring] Spring JPA Specification

Spring JPA SpecificationSpring JPA Specification 에 알아보려고 한다.다음의 사이트에서 Spring JPA Specification 에 대해서 그마나 쉽게 이해가 되도록 이야기하는 것 같다.https://dzone.com/articles/using-spring-data-jpa-specificationSpring JPA Specification 은 매우 짧게 이야기 한다면 기존에 인터페이스에 JpaRepository 같이 상속받아서 CRUD 메소드를 제공 받았으나, 동적인 쿼리를 작성할 때 JPA Specification 이 도움이 된다.예를 들어, 다음과 같은 기능이 있다고 생각하자.유저를 검색하는 게시판에, 각각 필터가 달려있다. userId, userName, c..

개발/Spring 2018.10.22

[Spring] Spring boot multi source transaction

Spring Boot JPA MultiSource TransactionSpring boot : 2.0.5 버전을 사용 중이다.Spring boot 에서 JPA 를 사용할 때 2개 이상의 DB 를 사용할 때가 있다. 그럴 때 이제 트랜잭션 문제가 생길 수 있는데, Spring boot 에서 제공하는 @Transaction 어노테이션에 대한 주석을 살펴보면 다음과 같이 주석이 달려있다./** * A qualifier value for the specified transaction. * May be used to determine the target transaction manager, * matching the qualifier value (or the bean name) of a specific * {@l..

개발/Spring 2018.10.06

[Spring] JPA 영속성

JPA 영속성이란Jpa @OneToOne 어노테이션의 Lazy Loading 이슈에 대해서 알아보다가 영속성에 관한 이야기가 나왔다.자세히 잘 모르기 때문에 한 번 알아보도록 한다.대부분의 내용은 openjpa.apache.org 에서 인용한 내용들이다.우선, 우리는 영속성 컨텍스트 에 대해서 알아야 한다. 이것은 JPA 에 있어서 가장 중요한 용어가 될 수 있다.JPA 영속성 컨텍스트란 Entity 를 영구 저장하는 환경이라는 뜻이라고 한다. openjpa 에서는 영속성 컨텍스트(persistence context) 는 persistent identity 에 대해 유니크한 entity instance 가 존재하도록 하는 entity 들에 대한 집합 이라고 한다.여기서 영속성 컨텍스트는 엔티티 매니저(e..

개발/Spring 2018.08.24

[Spring] JPA join 객체 null 체크를 해야하나?

Entity 클래스에 다음과 같은 코드가 있다고 하자. public class Company { @Column("seq") private Integer seq; ... @OneToMany(cascade = {CascadeType.PERSIST}, fetch = FetchType.LAZY, mappedBy = "user") @JoinColumn(name = "seq") private User user; } 그리고 Service 클래스에는 다음과 같은 코드가 있다. Company company = companyRepository.findBySeq(5); if (company.getUser() == null) { throw new IllegalArgumentException("no user data"); } ..

개발/Spring 2018.08.23

[Spring] Spring cloud feign 예제

spring cloud feign 이란 것을 알게 됐는데 진짜 조또 모르겠다. cloud, zuul, ribbon, eureka 등 등이 있는데 진짜 모르겠다. 우선 여기서 feign 은 예제 코드를 간단하게 짜 볼 수 있을 것 같아서 github 랑 구글링 좀 해서 대충 어떤 건지 보고 한 번 짜보았다. 쉽게 생각해서 feign 은 A 란 서비스가 있을 때 A 가 다른 서비스와 http 통신을 할 수 있도록 해주는 것 같다. (A 에서 B란 서버의 api 호출하거나 등) feign 구글링 했을 때 application.yml 로 무슨 설정 같은 것을 많이 하던데 우선 나는 그런거 다 제끼고 뭔가 동작하는 것을 봐야 이해할 수 있을 것 같아서 설정파일은 건드리지 않았다. 코드로 보면 더 이해하기 쉬울 것..

개발/Spring 2018.07.27

[Spring] 스프링의 IoC

스프링의 IoCBean : 스프링이 제어권을 가지고 직접 만들거나 관계를 부여하는 오브젝트 Bean Factory : bean 의 생성과 관계설정 같은 제어를 담당하는 IoC 오브젝트Application Context : 보통 bean factory 보다는 이를 더 확장한 애플리케이션 컨텍스트를 주로 사용한다.@Configuration : bean factory 를 위한 오브젝트 설정을 담당하는 클래스를 인식하기 위함 @Bean : 오브젝트를 만들어 주는 메소드에 붙임@Configuration // application context 또는 bean factory 가 사용할 설정정보라는 표시 public class DaoFactory { @Bean // 오브젝트 생성을 담당하는 IoC 용 메소드라는 표시 ..

개발/Spring 2018.07.24
반응형