Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
3.0 Beta 9
-
None
-
None
-
Windows XP, Java 1.6 Updat 16
Description
I'm trying to use the following resultMap:
<resultMap type="ACE" id="aceMap">
<result property="actorName" column="actorName"/>
<result property="isGranted" column="isGranted"/>
<association property="permission" javaType="Permission">
<constructor>
<idArg column="permissionId" javaType="int"/>
<arg column="permissionName" javaType="String"/>
</constructor>
</association>
</resultMap>
The constructor of "Permission" takes int (primitive type) and String as parameter. This results into the following Exception when iBATIS tries to instantiate the object:
-
-
- Error querying database. Cause: org.apache.ibatis.executor.ExecutorException: Error getting nested result map values
for 'permission'. Cause: org.apache.ibatis.reflection.ReflectionException: Error instantiating class com.brainware.gb.security.Permission with invalid types (Integer,String,) or values (0,READ,). Cause: java.lang.NoSuchMethodException: com.brainware.gb.security.Permission.<init>(java.lang.Integer, java.lang.String) - The error may involve com.brainware.gb.security.db.internal.SecurityMapper.getACEs-Inline
- The error occurred while setting parameters
- Cause: org.apache.ibatis.executor.ExecutorException: Error getting nested result map values for 'permission'. Cause: org.apache.ibatis.reflection.ReflectionException: Error instantiating class com.brainware.gb.security.Permission with invalid types (Integer,String,) or values (0,READ,). Cause: java.lang.NoSuchMethodException: com.brainware.gb.security.Permission.<init>(java.lang.Integer, java.lang.String)
at com.brainware.gb.base.data.db.AbstractDBDataRepository$SqlSessionInvocationHandler.wrapException(AbstractDBDataRepository.java:986)
at com.brainware.gb.base.data.db.AbstractDBDataRepository$SqlSessionInvocationHandler.invoke(AbstractDBDataRepository.java:966)
at $Proxy6.selectList(Unknown Source)
...
- Error querying database. Cause: org.apache.ibatis.executor.ExecutorException: Error getting nested result map values
-
The problem seems to be that iBATIS tries to find a constructor with java.lang.Integer, not for the primitive type.