반응형

MyBatis 사용 도중 아래와 같은 오류 메시지 발생.

도대체 뭐가 문제일까?

처음엔 아래와 같은 오류로 인해 상당히 혼란 스러웠다.

뭐가 문제지??

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: java.lang.NumberFormatException: For input string: "N"
### Cause: java.lang.NumberFormatException: For input string: "N"

 

실제 이 오류를 발생한 xml파일 내의 쿼리는 아래와 같다.

다이나믹 쿼리 수행을 위해 추가한 if 절로 인해 발생하는 것이었다. 문법 상의 문제가 없는지 여러번 살폈으나 별다른 이상을 발견하지 못했고, 구글링 도중 발견한 글 중 하나가 바깥에 표기한 큰따옴표(")를 작은따옴표(')로 변경해 보라는 글을 발견했다. 

<select id="select_CuttingAndNoCutting" resultMap="CuttingResult" parameterType="java.util.Map">
		SELECT  cutting_date, nvl(cut, 0) as cut, nvl(nocut, 0) as nocut 
		  FROM ( select cutting_date, sum(order_length) as order_length, cutting_type 
				   from ( SELECT cutting_date, order_length, cutting_type 
							from cutting_order_circuit
						   where cutting_date like #{YYYYMM,jdbcType=VARCHAR} || '%'
						     and drum_no not like '%결품%' 
							 and drum_no is not null 

							<if test="isPowerCutter == 'Y'">  
							 and (actor = #{actor,jdbcType=VARCHAR}
							  or actor is null 
							 and powerorder = 'on')  
							 and powercomplete is null
							</if>
						
							<if test="isPowerCutter == 'N'">  
							 and actor = #{actor,jdbcType=VARCHAR}
							</if>
						
						) group by cutting_date, cutting_type
			   ) PIVOT ( sum(order_length) FOR cutting_type IN ('절단' as cut, '미절단' as nocut))       
		order by cutting_date
	</select>

혹시나 하는 마음에 큰따옴표와 작은따옴표의 위치를 변경한 결과 아무런 문제 없이 내가 예상했던 대로 쿼리가 수행되는 것이었다.

정말 어의없는 상황..이 문제로 상당한 시간을 허비했거늘...

오늘도 이렇게 어의없이 문제를 깔끔하게(?) 해결한 하루 였다.

내가 바꾼 건 따옴표 밖에는 없었다는..

<select id="select_CuttingAndNoCutting" resultMap="CuttingResult" parameterType="java.util.Map">
		SELECT  cutting_date, nvl(cut, 0) as cut, nvl(nocut, 0) as nocut 
		  FROM ( select cutting_date, sum(order_length) as order_length, cutting_type 
				   from ( SELECT cutting_date, order_length, cutting_type 
							from cutting_order_circuit
						   where cutting_date like #{YYYYMM,jdbcType=VARCHAR} || '%'
						     and drum_no not like '%결품%' 
							 and drum_no is not null 

							<if test='isPowerCutter == "Y"'>  
							 and (actor = #{actor,jdbcType=VARCHAR}
							  or actor is null 
							 and powerorder = 'on')  
							 and powercomplete is null
							</if>
						
							<if test='isPowerCutter == "N"'>
							 and actor = #{actor,jdbcType=VARCHAR}
							</if>
						
						) group by cutting_date, cutting_type
			   ) PIVOT ( sum(order_length) FOR cutting_type IN ('절단' as cut, '미절단' as nocut))       
		order by cutting_date
반응형

'Java 기반 Web > Java' 카테고리의 다른 글

오라클 DB에서 BLOB 정보를 가져와서 보여주기  (0) 2022.07.20
반응형

오늘 택배로 도착한 포맥스.


스피커를 고정할 7.9센치 직경의 구멍을 2개 뚫고 순간 접착제로 포맥스를 붙이면서 스피커의 외형을 만듭니다.
내부에 블루투스 앰프 모둘을 중앙에 위치시키고 전원 연결을 위한 구멍을 뒷부분에 만듭니다.
스피커의 빈 공간에 울림이 생기면 소리가 울리는 현상이 생기기에 솜으로 소리를 흡수하기 위해 솜으로 양옆, 하단, 상단을 덮어 줍니다.
스피커 유닛 뒤에서 발생하는 잡소리가 내부에서 울리지 않고 흡수되어 전면의 스피커 소리가 방해받지 않도록 하면 됩니다.


완성된 스피커의 모습입니다.
소리도 나쁘지 않고, 소리를 가장 작게 했는데도 소리가 생각보다 크네요.
소리도 시원하게 나오고, 첫 시도지만 그럭저럭 맘에 드네요.


반응형

'IT제품' 카테고리의 다른 글

블루투스 스피커 만들기 (1/2)  (0) 2022.04.30
굿노트용 2022년 Calendar 일정관리  (0) 2021.11.27
애플워치 SE 개봉기  (0) 2020.11.30
아이폰12 프로 개봉기  (0) 2020.11.12
반응형

당근에서 스피커유닛과 함께 구매한 tda7492p 블루투스 앰프를 12V 5A 어댑터로 연결해서 만들었습니다.
스피커 유닛은 중국산 완음 4인치 풀레인지 입니다.
선을 스피커의 +/- 맞게 연결하고, tda7492p 앰프 모듈의 +/- 에 맞게 잘 연결하고 어답터를 연결 하면 끝입니다.
앰프 전원 연결 후 켜고 폰의 블루투스 설정화면으로 가서 SANWU Audio가 보이며, 이 녀석을 선택하면 연결이 완료됩니다.
케이스를 만들지 않은 상태에서도 내 귀에는 꽤 괜찮은 소리를 들려주는 것 같네요.
케이스를 씌우고 튜닝한 후의 소리가 긍금해지네요.
다음엔 케이스까지 씌워서 완성된 모습을 올려 보도록 하겠습니다.

반응형

'IT제품' 카테고리의 다른 글

블루투스 스피커 만들기 (2/2)  (0) 2022.04.30
굿노트용 2022년 Calendar 일정관리  (0) 2021.11.27
애플워치 SE 개봉기  (0) 2020.11.30
아이폰12 프로 개봉기  (0) 2020.11.12

+ Recent posts