스프링 부트+마이바티스에서 트랜잭션이 안먹을때

@Transactional(rollbackFor = Exception.class)


1. rollbackFor를 명시해준다

2. 메소드는 public으로 선언해준다


다른 패키지에서 안쓴다고 public으로 안했다가 삽질 경험

그 외에 다른 DataSourceTransactionManager니 @EnableTransactionManagement니

이런거 안넣어도 잘 동작함(블로그 글 기준)


[개발/JAVA] - 스프링 부트(Spring boot)에서 mybatis(oracle) 적용하기


참고

https://stackoverflow.com/questions/7085271/how-to-set-up-transaction-with-mybatis-and-spring



0  Comments,   0  Trackbacks
댓글 쓰기
코틀린으로 스프링 사용 시 ClassNotFoundException: kotlin.reflect.full.KClasses

Caused by: java.lang.ClassNotFoundException: kotlin.reflect.full.KClasses

at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_151]

at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_151]

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) ~[na:1.8.0_151]

at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_151]

... 26 common frames omitted


코틀린으로 스프링을 사용 시 위와 같이 오류가 난다

이 경우 kotlin-reflect을 추가해주면 간단히 해결


<!-- https://mvnrepository.com/artifact/org.jetbrains.kotlin/kotlin-reflect -->

<dependency>

    <groupId>org.jetbrains.kotlin</groupId>

    <artifactId>kotlin-reflect</artifactId>

    <version>1.2.41</version>

</dependency>



0  Comments,   0  Trackbacks
댓글 쓰기
H2 DB 사용 중 file is locked 발생

H2 DB를 사용 시 다음과 같은 오류 메세지를 만날때가 있습니다


The file is locked


내용 보면 알겠지만 여러 프로세스에서 동시에 접근할때 발행하는 오류입니다

제 경우 API 서버를 띄워놓고 배치를 돌릴때 이미 DB를 사용중이기 때문에 발생한 경우였습니다.

그럴 경우 설정을 다음과 같이 변경해 주시면 두개의 프로세스에서 동시 접근이 가능합니다.


datasource:
# url: jdbc:h2:file:~/test
url: jdbc:h2:~/test;AUTO_SERVER=true
username: sa
driver-class-name: org.h2.Driver


0  Comments,   0  Trackbacks
댓글 쓰기