Хотя верно, что запрос регулярных выражений для синтаксического анализа произвольного HTML похож на прошение начинающему писать операционную систему, иногда бывает целесообразно проанализировать ограниченный , известный набор HTML.
Если у вас есть небольшой набор HTML-страниц, которые вы хотите очистить данные, а затем вложить в базу данных, регулярные выражения могут работать нормально. Например, недавно я хотел получить имена, партии и округа австралийских федеральных представителей, которые я сошел с веб-сайта парламента. Это была ограниченная одноразовая работа.
Regexes отлично справились со мной и были очень быстрыми, чтобы настроить.
Я думаю, вам нужно объявить поле USR_ID и соответствующую последовательность в вашей сущности
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "XXXX")
@SequenceGenerator(sequenceName = "YYYY", allocationSize = 1, name = "XXXX")
Long USR_ID;
К сожалению, Oracle еще не полностью поддерживается. Существует проблема, открытая для создания интеграционных тестов для Oracle , и , сопровождающий PR , уже исправляет некоторые проблемы, но, конечно, не все.
Основная проблема заключается в том, что Oracle делает некоторые интересные вещи, касающиеся генерации сгенерированного ключа. Я вижу следующие опции
a) Не используйте генерацию ключей на стороне базы данных. DATAJDBC-282 делает это более удобным. Но это пока только в релизе SNAPSHOT.
б) Не используйте Oracle. В настоящее время мы проводим тестирование с MySql, Postgres, H2, HSQLDB и MariaDb
c) Посмотрите на PR, упомянутый выше, чтобы посмотреть, сможете ли вы его исправить достаточно для работы.
1110 Я знаю, что эти варианты не очень удовлетворяют. Проблема в том, что для проекта с открытым исходным кодом действительно сложно проводить интеграционные тесты с Oracle, поскольку даже загрузка легального драйвера JDBC Oracle из общедоступной сборки CI - это кошмар, не говоря уже о базе данных.
Коллега прислал мне это изображение, когда мы обсуждали ситуацию:
Но мы не сдаемся, должная поддержка будет добавлено.
У меня возникла та же проблема, в то время как PR включается в следующую версию JDBC Spring Data, мы можем использовать следующий обходной путь с Spring AOP. Это не «идеально», но нам достаточно, пока основная проблема не будет решена: [111 ]
@Around("execution(public * my-app-pacakage.repository.*.save(..))")
public Object aspectController(ProceedingJoinPoint jp) throws Throwable {
try {
return jp.proceed();
} catch (DbActionExecutionException e) {
if (e.getCause() instanceof DataRetrievalFailureException) {
return jp.getArgs()[0];
}
return e;
} catch(Throwable e) {
throw e;
}
}