jOOQ-разница между fetchAny и fetchOne
есть ли (реальная) разница между fetchAny()
и fetchOne()
? Оба возвращают точную запись. Документация API одинакова, но реализация (на github) отличается.
2 ответов
намерения двух методов различны:
-
возвращает:
результирующая запись или null, если запрос не возвращает записей.
Броски:
TooManyRowsException
- если запрос вернул более одной записи -
возвращает:
первая результирующая запись или null, если запрос не возвращает записей.
в сущности, когда вы используете fetchOne()
запрос должен возвращать 0 или 1 запись. Когда вы используете fetchAny()
запрос может возвращать любое количество записей, и если какая-либо запись возвращается базой данных, будет возвращена первая запись, извлеченная из результирующего набора JDBC.
в Javadoc объясняет разницу. fetchAny()
возвращает первую запись, тогда как fetchOne()
ожидает, что запрос вернет ноль или одну запись, и выдает исключение, если запрос вернул более одной записи.