Как создать общий запрос в JPA? - PullRequest
0 голосов
/ 28 февраля 2019

В каждой таблице в моей базе данных есть столбец с именем table_id.Чтобы получить это значение, мне нужно создать метод, т.е. getTableId () ... в каждом хранилище.Есть ли способ, что мне нужно создать метод getTableId один раз и вызвать его из разных классов.Я думаю о запросе типа @Query (выберите n.table_id из: myClass n).

Ответы [ 2 ]

0 голосов
/ 28 февраля 2019

Исходя из вашего вопроса, я предполагаю, что вы не хотите использовать .findAll (), .findById () в вашем репозитории all, хотите использовать только один раз и хотите написать запрос, как показано ниже.

public interface XXXRepository extends CrudRepository<XXX, Integer> {
@Query(value = "select * from ?1 where ...", nativeQuery = true)
List<XXX> findByXXX(String tableName, ...);
}

Здесь вы можете использовать параметры запроса только после где .. что означает, что вы не можете использовать параметр запроса в качестве имени таблицы.

Да, вы можете получить имя таблицы, как показано ниже, если у вас есть @Table(name="tableName")аннотации в вашей организации.

yourEntityClassName.class.getAnnotation(Table.class).name()
0 голосов
/ 28 февраля 2019

Есть метод, передающий имя таблицы.Внедрить необходимые хранилища.На основании названия таблицы звоните findAll.Из результатов вы можете получить идентификаторы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...