봄 더블 데이터 소스 개발 프로세스가 발생 구덩이

면책 조항 :이 문서는 블로거 원본입니다은 허용 블로거없이 복제 할 수 없다. https://blog.csdn.net/qq_28929579/article/details/84583693


비즈니스 요구로 인해, 두 개의 데이터 소스를 연결하는, 회사해야 패킷 소스 구성에 따라서 더블 데이터 프레임. 다음은 피트의 경험을 피하기 위해 초보자입니다. . .

java.lang.IllegalArgumentException가 : 이름 없음 퍼시스턴스 유닛 발견 'XXX'

이 회사의 프레임 워크 항아리 패키지는 매우 간단하지 않다, 이중으로 데이터 소스 때문에, 데이터의 단일 소스로 밝혀졌다? XML 구성 PersistenceUnitManager를가의 EntityManagerFactory가의 transactionManager,은 dataSource 및 트랜잭션 관리자가 persistenceUnitName 속성의 EntityManagerFactory는 더 이상 기본입니다 XXX되고, 또한 @PersistenceContext에 복제 이름 변경, 밖으로 복사됩니다 대신 좋은 baseDao의 노트 XXX, 여기에 그림 삽입 설명
다음 이름으로 오류에 어떤 퍼시스턴스 유닛을 당기지 시작 'XXX' 발견했다. 이 두 장소뿐만 아니라, 또한 증가 XXX에서? 바이두는 META-INF / persistence.xml을보고, 프로젝트가 아하지 않았다 말했다! 나중에, 치열한 생각은,이 회사는 항아리 패키지의 틀에서하실 수 있습니다! ,,, 우리는 다음 XXX를 추가에 따라, SRC 아래에 넣어 항아리에 발견 확인을 다시 시작합니다.

만 쿼리를 추가하거나 삭제할 수 없습니다?

좋은 데이터 소스로, 당신은 즐거운 쿼리가 나중에 삽입 할 수있는 데이터 로그 테이블 인 응답을 개발할 수 있습니까? 주어지는하지? 그러나 DAO 또 다른 데이터 소스는 다음 생각, 어떤 구성 아랍 문제되지 삽입하지,하지만 서비스는 정말 다른과, 업무의 기본 데이터 소스 관리는 거래 기본, @,이 구덩이에서 @Transactional을 추가 할 수 있습니다 DAO를 확실히 @Transactional되도록 (값 = "transactionManagerNew")가되는 플러스 매니저 방법을 나타 내기 위해 사용되며, 데이터 소스 업무를 열 수 없다. 성공적으로 실행 확인을 저장

트랜잭션이 잘못 후 또한 당신은 이상 동작을 따라 잡을 수없는 이유는 무엇입니까?

저장 프로 시저를 호출하는 cron 작업을 작성하고 결과 즉, 저장 프로 시저를 저장하고 필드에 실패 캐치로 처리 포함 살고 시도와 함께, 물론, 로그 테이블을 저장, 더 이상 정상적인 저장하지 않습니다. 이렇게 잘 보인다,하지만 존재하지 않는 저장 프로 시저의 이름을 변경하는 경우, 찾을 캐치 예외를 살고 있지만, 전체 트랜잭션이 롤백되고이 삽입 로그 테이블을 확인하지 리드하고 충족 있지만 및 HTTPS : / /bbs.csdn.net/topics/390688795 같은 문제. (DAO 트랜잭션 층에) 다음과 같이 시험 용액 후 :
1. @Transactional 않고 새로운 서비스를 만들기
DAO 층에서 2, 두 개의 새로운 클래스는, 로그를 업데이트하는 저장 프로 시저를 호출하고,이 방법은 머리 플러스 @Transactional 있습니다.
시도 래핑하는 방법 3. 새로운 서비스를 호출 한 다음 로그 메서드 호출을 저장합니다.

추천

출처blog.csdn.net/qq_28929579/article/details/84583693