I have a Java project that uses MyBatis to access a PostgreSQL database. PostgreSQL allows to return fields of a newly created row after an INSERT
statement, and I want to use it to return the auto-generated BIGSERIAL
id
of newly created records. So, I change the insert
command in the XML to use feature of PostgreSQL, add an resultType="long"
attribute to the <insert>
tag, and in the Java interface of the mapper I set the insertion method to return long
instead of void
.
When I try to run this, I get an org.xml.sax.SAXParseException
saying that Attribute "resultType" must be declared for element type "insert"
.
Now, when I change the <insert>
tag to <select>
everything works fine, but it bothers me that I use <select>
tag to perform an INSERT
statement.
Is there a way to make methods mapped to <insert>
tags return results, or is MyBatis not designed for that, and I should just keep them as <select>
tags?