Question: Hi I'm new to myBatis.

I'm using MyBatis and Spring with mybatis-spring.

How can I pass two different types of objects as parameters, and how can I use their properties in query?

```xml
<update id="update" parameterType="A, B"> <!-- @@? -->
  UPDATE SOME WHERE x=A.x AND y=B.y <!-- @@? -->
</update>

```

Answer: 
Do not specify `parameterType` but use `@Param` annotation on parameters in mapper:

```
@Mapper
public interface MyMapper {

    void update(@Param("a") A a, @Param("b") B b);

    ...
}

```

Then reference them in mapping:

```
<update id="update" > 
   UPDATE SOME WHERE x=#{a.x} AND y=#{b.y}
</update>

```
I would suggest reading the MyBatis documentation - it is pretty comprehensive and accurate.

Lets take an example: updating a customer's name from a com.mycompany.Customer POJO instance, which has a getFirstName() getter.

1. Pass an instance of your Customer class as the parameter
2. Set the **parameterType= "com.mycompany.Customer**". But check out the alias facility - then you can use the shorthand version **parameterType="Customer"**
3. Use the standard MyBatis syntax in the SQL: **... set FIRST\_NAME = #{firstName}**

(Edit) If you need to pass multiple objects there are various options:

1. Pass a map containing the multiple objects
2. Create a utility class the aggregates your multiple classes, and pass this as the parameter.

Again, please read the manual...