| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 | 31 |
- mybatis
- JPA
- Spring
- JavaScript
- gson
- Linux
- SAP
- nginx
- dbeaver
- maven
- BPMN
- docker
- Kubernetes
- IntelliJ
- gradle
- kubectl
- database
- react
- springboot
- NCP
- useEffect
- nodejs
- log4j2
- MySQL
- VSCode
- LOG4J
- Java
- Windows
- Git
- tibero
- Today
- Total
목록전체 글 (269)
두 손끝의 창조자
스프링부트 등 jar 로 말려있는 자원 내부에서 특정 리소스를 참조할 때 로컬에서 테스트할 때는 잘되나 서버에서 실행하면 오류가 발생할 수 있다. 리소스에서 읽을 때 File을 받아오지말고 스트림으로 받아 와서 처리. 왜 그런지는 확인 필요. Spring Boot에서 src/main/resource 파일 접근 방법 및 주의사항. — wedul
메인 모듈에 mapper 가 있는데 테스트 모듈에서 매퍼 파일을 못 읽어서 Mapped Statements collection does not contain value for 와 같은 예외가 발생할 수 있다. 대부분의 경우 id를 잘 못 넣은 케이스지만 매퍼 파일 자체를 해당 모듈에서만 읽어서 발생하는 문제일 수 있다. String MYBATIS_MAPPER = "classpath*:/mappers/**/*.xml"; 매퍼 경로를 위와같이 변경하고 시도해보자.
프로젝트에서 여러가지 DataAccess 기술을 쓰고 있는데 한 트랜잭션에서 다양한 기술을 사용할 때는 유의 할 점이 있다. JPA에서 데이터를 저장하고 난 뒤 flush를 해야 다른 기술에서 그 데이터를 확인 할 수 있다. mybatis도 유사한 기능이 있는데 캐시를 가지고 있어서 flush를 해줘야한다. 이 캐시 자체의 범위를 조정하거나 쓰는 옵션이 있는데 링크를 참조. [오픈소스] MyBatis 내장 cache에 대해서 (tistory.com)
MappedStatement mappedStatement = sqlSession.getConfiguration().getMappedStatement(s); List resultMaps = mappedStatement.getResultMaps(); ResultMap resultMap = resultMaps.get(0); Class type = resultMap.getType();
EntityManagerFactory는 DataSource와 연관되어 있다. 스프링 환경에서 사용하는 경우 EntityManagerFactory는 빈으로 등록해서 사용하는게 효율적이라 등록 후 사용중이라면 ApplicationContext에서 Factory를 가져올 수 있다. @Transactional 로 트랜잭션 관리를 한다면 @PersistentContext 애노테이션으로 쉽게 현재 스레드의 EntityManager를 가져올 수 있다. @PersistentContext EntityMager em; 그러나 트랜젝션을 직접 관리한다면 아래 방법으로 가져올 수 있다. EntityManager em = EntityManagerFactoryUtils.getTransactionalEntityManager(emf);