기존에 편리하게 사용하던 iBATIS 2.3.0.677 버전을 최신버전인 2.3.4.726 으로 수정했습니다.
사이트 개편이 있어서 바인딩 로그를 볼까해서 2.3.0.677 버전을 사용하니 Exception이 나네요.
Exception 내용은 다음과 같습니다.
Caused by: com.ibatis.common.beans.ProbeException: There is no READABLE property named...
원인은 링크 클릭하시면 볼 수 있습니다.
http://cafe.naver.com/nautes74.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=132
수정된 소스파일과 jar 파일 함께 올립니다.
수정내역은 원본 소스 받아서 비교해보시면 됩니다.
사용법은 이전 버전과 같습니다.
'DEVELOPMENT > Java' 카테고리의 다른 글
Spirng MVC 와 Tiles 2 연동하기(기본) (0) | 2010.05.26 |
---|---|
Spring MVC Annotation기반으로 사용시 URL기반 요청 문제점 해결방법 (0) | 2010.05.25 |
[Spring] jsp에서 bean 호출하기 (0) | 2010.02.08 |
Spring - Java/J2EE Application FrameworkVersion 1.2.2 (0) | 2010.02.04 |
Tip. MessageFormat 예제 (0) | 2010.01.07 |
[ibatis]동적 컬럼 생성시 컬럼정보를 제대로 가져오지 못하는 현상
DEVELOPMENT/Java2009. 11. 12. 10:19
이번에 프로젝트를 하면서 동일한 성격의 테이블이 여러개라 하나의 쿼리를 두고 테이블 명과 몇가지 다른 컬럼에 대해서는 동적으로 생성해서 가져오게 했다..
하지만 몇번 재대로 실행이 되는가 싶더니 테스트 진행 과정에서 컬럼을 가져오지 못하는 현상이 발생했다.
일단은 혹시나 모를 문제가 있지 않을까 해서 쿼리를 분리하고 동적으로 생성되어야 되는 부분은 쿼리를 따로 작성해서 select 하도록 하였다.
후에 이 문제에 대해서 살펴봤더니 원인은 ibatis가 매핑 정보를 캐싱하기 때문이라고 한다.
이문제를 해결하려면 다음과 같이 사용할수가 있다.
다음 코드는 일반적으로 같은 내용을 담고 있지만 photo_gallery 테이블인 경우는 image_name, image_path, image_size 컬럼을 동적으로 생성해서 가져오는 쿼리이다.
일반적으로는 파일 테이블을 따로 두겠지만 예제를 설명하기 위해서 위와 같이 하였다..
위에 테이블에서 remapResults="true" 부분이 없을 경우 위에서 설명한 에러가 발생할수가 있다 하지만 이부분을 넣어 주면서 쿼리를 가져올때 매번 새로 생성한 쿼리를 가져오기 때문에 다음부터는 동적으로 컬럼을 가져오면서 발생한 에러를 해결 할 수가 있다.
하지만 몇번 재대로 실행이 되는가 싶더니 테스트 진행 과정에서 컬럼을 가져오지 못하는 현상이 발생했다.
일단은 혹시나 모를 문제가 있지 않을까 해서 쿼리를 분리하고 동적으로 생성되어야 되는 부분은 쿼리를 따로 작성해서 select 하도록 하였다.
후에 이 문제에 대해서 살펴봤더니 원인은 ibatis가 매핑 정보를 캐싱하기 때문이라고 한다.
이문제를 해결하려면 다음과 같이 사용할수가 있다.
<select id="select" remapResults="true" parameterClass="dataMap" resultClass="dataMap">
SELECT
bbs_seq
,title
,contents
,register_date
<isEqual property="table" compareValue="photo_gallery">
,image_name
,image_path
,image_size
</isEqual>
FROM $table$
<include refid="globalWhere" />
</select>
SELECT
bbs_seq
,title
,contents
,register_date
<isEqual property="table" compareValue="photo_gallery">
,image_name
,image_path
,image_size
</isEqual>
FROM $table$
<include refid="globalWhere" />
</select>
다음 코드는 일반적으로 같은 내용을 담고 있지만 photo_gallery 테이블인 경우는 image_name, image_path, image_size 컬럼을 동적으로 생성해서 가져오는 쿼리이다.
일반적으로는 파일 테이블을 따로 두겠지만 예제를 설명하기 위해서 위와 같이 하였다..
위에 테이블에서 remapResults="true" 부분이 없을 경우 위에서 설명한 에러가 발생할수가 있다 하지만 이부분을 넣어 주면서 쿼리를 가져올때 매번 새로 생성한 쿼리를 가져오기 때문에 다음부터는 동적으로 컬럼을 가져오면서 발생한 에러를 해결 할 수가 있다.
'DEVELOPMENT > Java' 카테고리의 다른 글
[java] 저장소 정보 확인 (0) | 2009.11.24 |
---|---|
자주 쓰는 Maven 설정 정리 (0) | 2009.11.16 |
JSONObject를 이용한 json 사용하기 (0) | 2009.11.04 |
ckeditor 이미지 업로드시 반환 리턴값 보내기 (0) | 2009.10.26 |
ibatis 로그 남기기 (0) | 2009.10.08 |
ibatis 로그 남기기
DEVELOPMENT/Java2009. 10. 8. 17:03
ibatis 작업중 로그를 보여줍니다.
사용법
1. ibatis-2.3.0.677.jar 파일을 WEB-INF/lib 폴더 아래로 복사합니다.
2. log4j.properties 파일에 다음 줄을 추가해줍니다.
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG
간혹 안나오는 경우는 log4j.jar 파일이 WEB-INF/lib 폴더에 존재하는지 확인하기 바란다.
'DEVELOPMENT > Java' 카테고리의 다른 글
JSONObject를 이용한 json 사용하기 (0) | 2009.11.04 |
---|---|
ckeditor 이미지 업로드시 반환 리턴값 보내기 (0) | 2009.10.26 |
Spring 2.5 annotation (0) | 2009.10.08 |
[java] String 배열을 List에 넣기 (0) | 2009.01.19 |
Cookie를 효율적으로 관리하고 사용하자 (0) | 2008.04.15 |