#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. нет, не помогает:(