MyBatis - lists of primitive types

Joel picture Joel · Feb 7, 2012 · Viewed 23.8k times · Source

This seems to have eluded me. I know I can use a map to return a vanilla set of rows from a myBatis query but how to do it with a list of primitive types?

e.g. If I had SQL like:

select product_price from products

Does this require a resultMap? I've tried to use java.util.ArrayList as the result type but get class not found errors.

In a similar vein, how do I pass a list of items as an argument to a query.

Any input, pointers to docs appreciated.

Answer

broc.seib picture broc.seib · Dec 29, 2014

Just declare the resultType as the primitive type that you want, which in your case is a Long. It will be returned as a list.

<select id="getPrice" resultType="java.lang.Long">
  select product_price from products
</select>

In the mapper interface you should expect to get back a list of Long.

List<Long> getPrice();