#java #sql #enums
#java #sql #перечисления
Вопрос:
Скажем, у меня есть перечисление, которое просто
public enum testEnum {
A, B, C, D
}
Из базы данных SQL я получил таблицу с именем DATA, в которой можно найти значения test_a и prg_l. Значения test_a должны соответствовать значениям моего перечисления (A, B, C, D). Но как я могу сохранить свое перечисление в записи, чтобы проверить данные sql?
public void checkIfRecordIsUsed(String record, testEnum test) {
List<String> data = new ArrayList<String>();
Query dataQuery = entityManager.createNativeQuery("select * from DATA where test_a = 'A' and prg_l = ?1");
dataQuery.setParameter(1, record);
if (dataQuery.getResultStream().findAny().isPresent())
tablesWithRecords.add("DATA");
}
Комментарии:
1. Вы имеете в виду
test.name()
?2.
test.name()
Это сделает ввод в ваш запрос.3. вы имеете в виду, как показано ниже?
4. или как мне добавить это в мой запрос данных?
5. @Jolosin Смотрите мой ответ.
Ответ №1:
Вы можете ввести значение перечисления в виде строки:
public void checkIfRecordIsUsed(String record, testEnum test) {
List<String> data = new ArrayList<String>();
Query dataQuery = entityManager.createNativeQuery("select * from DATA where test_a = ?2 and prg_l = ?1");
dataQuery.setParameter(1, record);
dataQuery.setParameter(2, test.name());
if (dataQuery.getResultStream().findAny().isPresent())
tablesWithRecords.add("DATA");
}