I've used iBatis for a while, and selectKey without trouble. For some reason, however, the following code won't work. It never calls setId() on the object passed in as a parameter. Basically i'm getting an Oracle error telling me id can't be null.. so selectKey isn't calling setId() before the Insert as it should. Any ideas? Thanks everyone!
<insert id="addUser" parameterClass="credential"> <selectKey resultClass="java.lang.Long" keyProperty="id" type="pre"> select gw_sequence.nextval as id from dual </selectKey> <![CDATA[ insert into credentials ( id, username, password, organization_id ) values ( #id#, #username#, #password#, #organizationId# ) ]]> </insert> Model: .... protected Long id; /** * @return Returns the id. */ public Long getId() { log.error("******************* User.getId() returned " + id); return id; } /** * @param id * The id to set. */ public void setId(Long id) { log.error("******************* User.setId() set to " + id); this.id = id; } ...