Spring data jpa: QuerySyntaxException: отдел не сопоставлен - PullRequest
0 голосов
/ 06 декабря 2018

Я использую данные весны jpa. Я пишу запрос, используя аннотацию @query, и пытаюсь извлечь все столбцы в таблице, но при реализации я получаю сообщение об ошибке, что таблица отдела не отображается.

Отделы Репозиторий

 @Repository
    public interface DepartmentsRepository extends JpaRepository<Department, Long> 
    {
        @Query(value = "select d from department d")
        public List<Department> findColumns();
    }

Класс отдела

@Entity
@Table(name="department")
public class Department 
{
@Id
@Column(name="ndept_id")
public int ndept_id;

@Column(name="sdept_name")
public String sdept_name;

@Column(name="ninst_id")
public int ninst_id;

@Column(name="bis_locked")
public boolean bis_locked;

@Column(name="sclient_dept_id")
public String sclient_dept_id;

@Column(name="nsurvey_method_id")
public  int nsurvey_method_id;

@Column(name="bis_jointuse")
public boolean bis_jointuse;

@Column(name="ntemp_dept_id")
public int ntemp_dept_id;

@Column(name="balternate_jointuse_percentage")
public boolean balternate_jointuse_percentage;

@Column(name="ndiv_id")
public Integer ndiv_id;

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

JPA не работает с именами таблиц, поэтому, если вы хотите написать свой запрос на языке запросов JPA (JPQL), используйте полностью классифицированные (package_name.class_name) имена сущностей вместо имен таблиц.

запрос будет выглядеть следующим образом:

@Query(value = "select d from package_name.Department d")
public List<Department> findColumns();

Или вы также можете запустить простой SQL-запрос в аннотации @Query, используя nativeQuery=true, поэтому ваш код будет выглядеть как

@Query(value = "select d from department d", nativeQuery=true)
public List<Department> findColumns();
0 голосов
/ 06 декабря 2018

JPQL-запросы к сущностям, это не повлияет на базу данных напрямую.поэтому используйте имя модели вместо имени таблицы

@Repository
    public interface DepartmentsRepository extends JpaRepository<Department, Integer> 
    {
        @Query("select d from Department d")
        public List<Department> findColumns();
    }
...