2016-10-17 9 views
3

Я использую MyBatis с Java. Могу ли я использовать несколько ids в карте результатов?Несколько идентификаторов в MyBatis resultMap - преимущества производительности?

Код

Мой класс Результат Java выглядит следующим образом:

public class MyClass { 
    private int id1; 
    private int id2; 
    private int total; 

    // getters & setters 
} 

В настоящее время мой MyBatis результат карта выглядит следующим образом:

<resultMap id="MyResult" type="MyClass"> 
    <result property="id1" column="id1" /> 
    <result property="id2" column="id2" /> 
    <result property="total" column="total" /> 
</resultMap> 

Этот результат используется карта в этом запрос:

<select id="mySelect" resultMap="MyResult" parameterType="Map"> 
    select 
     id1, 
     id2, 
     sum(total) as total 
    from 
     myTable 
    group by 
     id1,id2; 
</select> 

Все работает нормально, но согласно документации MyBatis я должен использовать id, чтобы получить некоторую эффективность. Я хочу, чтобы изменить результирующую карту MyBatis к:

<resultMap id="MyResult" type="MyClass"> 
    <id property="id1" column="id1" /> 
    <id property="id2" column="id2" /> 
    <result property="total" column="total" /> 
</resultMap> 

Вопросы

  1. Будет ли она работать так же, как и раньше?

[Later Edit]: проверено, похоже, что оно не испортило группировки и строки, поэтому я бы сказал, что он работает по-прежнему и как и ожидалось.

  1. Принесите ли вы преимущества использования MyBatis с помощью id?

Где я смотрю, но не смог найти ответ

  1. MyBatis documentation - они не говорят, или дать пример подобной ситуации.
  2. Composite Key - однако у меня нет составного ключа, и я бы предпочел не модифицировать MyClass, чтобы создать идентификатор псевдокласса с id1, id2.

ответ

1

Да, он будет работать так же, как и раньше, и в соответствии с документацией он получит некоторую эффективность, которую вы будете ценить, когда будете работать с массивными рядами. Во всяком случае, моя рекомендация - использовать вторую карту результатов, чтобы быть наиболее точным в определении вашей итоговой карты в соответствии с вашей структурой базы данных.

 Смежные вопросы

  • Нет связанных вопросов^_^