org.springframework.data.mapping.model.MappingInstantiationException: Failed to instantiate

xxxx.xxx.xxx(패키지 경로)

using constructor 

xxxx.xxx.xxx

(long ,long,java.lang.String,int,int) 

with arguments 

null ,1578374290,,0,1

 

와 같이 오류가 발생

원인은 첫번쨰 long이 새로 추가된 필드라 mongodb에 없는 값이기 때문에 생성자에서 null을 넣었는데 long이라서 

오류가 나온것

long을 Long로 수정하여 처리함

 

Posted by 삽지리
,

위도는 -90(남반구) ~ +90(북반구) 

경도는 -180~+180까지임

위도는 문제가 없는데 경도가 문제

왼쪽으로 갈수록 경도가 작아지는데

-179에서 왼쪽으로 가면 -180 더 왼쪽으로 가면 +180이 된다.

그러므로 범위를 잡을때 sw(south west) ne(north east)를 기준으로 범위를 잡을때

한좌표가 범위안에 속하는지 여부에 대한 계산이 복잡해짐

 

 보통은

 

-30, -30 ~ +40, 40

이런식으로 범위가 잡힐텐데

-30, +178 ~ 40 , -178

처럼 위도의 경우 w값이 양수고 east값이 음수인 경우도 발생함

 

 

그래서 아래와 같이 체크해야됨

function test(point,west,east){
	
	if(west <= east){
		if(point >= west && point<=east){
			return true;
		}else{
			return false;
		}
	}else{
		if(point >= west || point <= east){
			return true;
		}else{
			return false;
		}
	}

}


console.log(test(1,2,3) == false);
console.log(test(1,-10,3) == true);
console.log(test(1,178,-178) == false);
console.log(test(179,178,-178) == true);
console.log(test(-179,178,-178) == true);

 

Posted by 삽지리
,

https://github.com/harawata/mybatipse

Posted by 삽지리
,

ibatis는 insert시 object를 반환하고

mybatis는 insert시 int를 반환한다.

아마

selectkey에 대한 처리가 바뀐듯..

ibatis에서는 selectkey를 사용시 반환받는값이 selectkey의 리턴값이었는데


mybatis는 update처럼 처리된 건수를 반환한다.


Posted by 삽지리
,

BufferedReader in = new BufferedReader( new InputStreamReader(new FileInputStream(processFilePath+mappingFileName),"euc-kr"));


String s;


     while ((s = in.readLine()) != null) {

     String[] str = s.split(sep);

     //System.out.println("s:"+ new String(((String)s).getBytes("MS949"),"utf-8"));

     if(str.length == 3){

     //System.out.println("name:"+new String(((String)str[0]).getBytes("euc-kr"),"utf-8"));

     System.out.println("name:"+str[0]);

     System.out.println("onnaraId:"+str[1]);

     System.out.println("email:"+str[2]);

     }

     }

Posted by 삽지리
,

bindingResult.addError(new FieldError("dataVO","fromDt","에러메시지") );

와 같이 해주면 된다.

Posted by 삽지리
,

만들게 된 이유는 form:select에서 사용하기 위함
form:select에서 map형태는 getter setter가 없어서 사용하려면 에러가 난다.
그래서 원래의 egovmap을 확장하여 만듬.




public class EgovTagMap extends EgovMap {


public EgovMap getTagMap(){

return this;

}


}





=========================== 사용방법==================



<form:select path="변수명" items="${itemList}" itemLabel="tagMap['컬럼명']" itemValue="tagMap['컬럼명']">

            </form:select>




Posted by 삽지리
,

form:hidden 등을 사용하여 input 태그를 사용시 path 명이 그대로 id와 name이 된다.
name이 다른 폼에 있어 중복되는 문제는 상관없으나 id가 중복되는것은 문제가 있음
아예 없애려면 id="" 이라고 넣어주면 없어진다.

Posted by 삽지리
,

[내용수정]: 

우선 에러가 났으며 에러내용은 다음과 같다.

 

### Error querying database.  Cause: java.lang.NumberFormatException: For input string: "N"
### Cause: java.lang.NumberFormatException: For input string: "N"

 

아래 예시를 보자...

 

<if test="searchKey.colName == 'content'">

이경우에는 문제가 없다

 

 

<if test="searchKey.useYn == 'Y'">

 

이경우에는 문제가 있다

 

무슨차이일가.

 

바로 문자가 한개이냐 아니냐의 차이..

문자가 하나일 경우 싱글쿼테이션으로 감싸면 숫자로 캐릭터로 인식한다.

그러므로...

 

<if test='searchKey.useYn == "Y"'>

 

처럼

더블쿼테이션을 쓸 필요가 있다. 주의해서 다 수정하자..

 

-----------

ibatis

-----------

<isEqual property="paramValue" compareValue="N">

-----------

mybatis

-----------

<if test="findUseYn == 'N'" >

 

 

 

 

*********************************

ibatis

-----------

<isNotEqual property="paramValue" compareValue="N">

-----------

mybatis

-----------

<if test="paramValue != 'N'" >

 

 

 

 

*********************************

ibatis

-----------

<isNotEmpty property="paramValue" >

-----------

mybatis

-----------

<if test="paramValue != null and paramValue != ''   " >

 

 

 

*********************************

ibatis

-----------

<isEmpty property="paramValue" >

-----------

mybatis

-----------

<if test="paramValue == null or paramValue == ''   " >

 

eq라던가 ne라던가 하는 방법이 추가로 있지만..

그냥 저걸로만 정리해둔다.

Posted by 삽지리
,

 

 

if ($.browser.mozilla || $.browser.opera) {
    c.bind("textchange", function(a, b) {
     $.check(c, e.indicator, parseInt(e.limit), e.twice);
    });
   } else {
    c.bind("keyup", function(a) {
     $.check(c, e.indicator, parseInt(e.limit), e.twice);
    });
   }

 

이런식으로 textarea를 위한 byte체크를 위해서 분기를 하는 부분이 있었는데

ie11은 $.browser.mozilla 가 true이다

해서 찾아보니

http://serpiko.tistory.com/370

 

이런글이 있네

내용에 보면 ie11에는 navigator.userAgent에 MSIE가 없어서 생기는 오류인듯

 

 

http://www.slideshare.net/netil/ie11-201310

 

이것도 한번 읽어볼것

 

눈여겨볼 내용은

ie11이전까지는 attachEvent를 사용했으나 이제는

다른브라우저들과 마찬가지로 addEventListener를 사용하게 된것

Posted by 삽지리
,