2017-05-18 4 views
0

내 프로젝트에 Mybatis3.2, Orace 12c을 사용하고 있습니다. 코드 생성기를 사용하여 insert() 메서드를 생성했습니다. <insert> 태그에는 스키마 이름이 있습니다. 예를 들면 다음과 같습니다더 많은 매개 변수를 추가하면 Mybatis 삽입이 실패합니다.

insert into CPORTAL.CARD_USER_MASTER 

이제 스키마가 동적, 그래서 스키마 변경하려면 매개 변수를 넣어 :

insert into ${schema}.CARD_USER_MASTER 

매개 변수 schemamapper.java

insert(CardUserMaster record, @Param("schema") String schema) 

그러나 정의된다, 해당 스키마가 없으면 삽입 작업은 수행되지만 스키마가있는 경우 오류 발생 :

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter 'carduserSeqno' not found. Available parameters are [0, schema, param1, param2] 

다른 클래스에서는 insert 메서드에있는 것과 같은 스키마 매개 변수를 설정하고 작동합니다. 이 수업에서 어떤 일이 발생하는지 모릅니다.

의견을 보내 주시면 감사하겠습니다.

감사합니다.

답변

1

insert(@Param("entity") CardUserMaster record, @Param("schema") String schema) 

로 변경을하고, SQL에 entity.carduserSeqno로 PARAMS를 사용합니다.

0 매개 변수가 POJO임을 인식 할 수없는 것처럼 보입니다. @Param("schema")이 없으면 pojo 필드를 params btu로 직접 사용하여 schema 매개 변수를 추가 할 수 없습니다.

+0

감사합니다. 그러나 예상대로 작동하지 않습니다. 어쨌든, 도와 주셔서 감사합니다. 건배. –