2016-12-23 4 views
0

У меня есть таблица с 2 столбцами store_number и manager_id, и я создал сущность и класс репозитория для этой таблицы.Spring JPA/Hibernate findby имя столбца возвращать пустую коллекцию

Я пытаюсь запросить manager_id по store_number с использованием метода хранилища ниже

Bean класса:

@Entity 
public class StoreManagers { 
    @Id 
    @GeneratedValue 
    @Column(name="store_number") 
    private String storeNumber; 
    private String managerId; 
    public StoreManagers() { 
    } 
    public String getStoreNumber() { 
     return storeNumber; 
    } 
    public void setStoreNumber(String storeNumber) { 
     this.storeNumber = storeNumber; 
    } 
    public String getManagerId() { 
     return managerId; 
    } 
    public void setManagerId(String managerId) { 
     this.managerId = managerId; 
    } 
    @Override 
    public String toString() { 
     return "StoreManagers [storeNumber=" + storeNumber + ", manageId=" + managerId + "]"; 
    } 
} 




public interface StoreManagersRepository extends JpaRepository<StoreManagers, String> { 
     List<StoreManagers> findByStoreNumber(String storeNumber); 
} 

Вот запрос спящего режима и результат

Hibernate: select storemanag0_.manager_discount_id as manager_1_2_, storemanag0_.store_number as store_nu2_2_ from storemanagers storemanag0_ where storemanag0_.store_number=? 2016-12-23 12:16:15.763 TRACE 644 --- [nio-4000-exec-1] o.h.type.descriptor.sql.BasicBinder  : binding parameter [1] as [VARCHAR] - [00012] 

    : [] 

Это возвращение пустой список , но когда я выполняю запрос непосредственно, я получаю результаты.

Пожалуйста, помогите мне с этим. Ват, я здесь делаю неправильно?

+0

Либо вы не передаете тот же storeNumber, или вы и приложение не используют ту же базу данных, или данные, которые вы будете видение было вставлено, но еще не зафиксировано. –

+0

Пожалуйста, добавьте фрагмент кода, в котором у вас есть проблема. –

+0

И, пожалуйста, не перезаписывайте сделанные мной изменения, если это ухудшит положение. –

ответ

0

Если вы хотите сохранить подчеркнутые имена полей в своей базе данных, аннотируйте свои сущности полями с помощью @Column(name="store_number") и переименуйте свое поле, чтобы быть в верблюжьем футляре.

@Column(name="store_number") 
private int storeNumber; 

В вашем хранилище, вы можете использовать метод

findByStoreNumber(int storeNumber) 
+0

, используя то же самое..пожалуйста, см. Код класса сущности в разделе вопросов – Hanumanthraju

+0

По умолчанию он может использовать знак подчеркивания в базе данных, случай верблюда будет разделен на подчеркивание. http://stackoverflow.com/a/29088398/3448799 – richersoon

+0

Попробуйте изменить свой 'storeNumber' на' int' или 'long' или если ваш' storeNumber' является буквенно-цифровым, укажите другое поле, которое будет 'id' и аннотируется '@ GeneratedValue' – Kihats

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