Весенняя загрузка с собственным запросом — сопоставленная сущность равна нулю, если значение столбца равно нулю

#java #spring-boot #repository #nativequery

Вопрос:

Я использую собственный запрос для получения списка сущностей в spring boot. Всякий раз, когда значение столбца равно null, сопоставленный объект равен null. Мое хранилище выглядит так:

 @Repository public interface OrderRepository extends CrudRepositorylt;OrderKey, Longgt; {   @Query(value = "SELECT l.[ORDER_ID],"    "l.[KEY_TYPE], "    "l.[KEY],"    "l.[VERSION] "    "FROM [ORDER_TABLE] l "    "WHERE [ORDER_ID] = :orderId",  nativeQuery = true)  Listlt;OrderKeygt; findAll(@Param("orderId") Long orderId);  }  

Сущность:

 public class OrderKey implements Serializable {   private static final long serialVersionUID = 10L;   @Id  @Column(name = "ORDER_ID")  public long orderId;   @Id  @Column(name = "KEY_TYPE")  public String keyType;   @Column(name = "KEY")  public String key;   @Column(name = "VERSION")  public String version;  }  

У меня есть три строки в таблице базы данных, где две строки имеют столбец «Версия» с нулевыми значениями.

Я вижу, что заполненный список имеет: {null, null, OrderKeyinstance}

Может ли кто-нибудь помочь мне это исправить?

Ответ №1:

Вы должны проверить содержимое списка, возможно, ваш метод toString отображает только версию, и вдруг мы отобразим null, null

Комментарии:

1. Нет, сам объект равен нулю

2. Вы пользовались картографом? вы выполняли sql, отображаемый на консоли, непосредственно на SGBD?

3. Нет, я не использую картограф. Да, запрос правильный. Журналы в spring boot показывают извлеченные данные

4. Можете ли вы удалить аннотацию @Id в поле Тип ключа?

5. нет, не помогает:(