jOOQ-разница между fetchAny и fetchOne

есть ли (реальная) разница между fetchAny() и fetchOne()? Оба возвращают точную запись. Документация API одинакова, но реализация (на github) отличается.

2 ответов


намерения двух методов различны:

  • ResultQuery.fetchOne()

    возвращает:

    результирующая запись или null, если запрос не возвращает записей.

    Броски:

    TooManyRowsException - если запрос вернул более одной записи

  • ResultQuery.fetchAny()

    возвращает:

    первая результирующая запись или null, если запрос не возвращает записей.

в сущности, когда вы используете fetchOne() запрос должен возвращать 0 или 1 запись. Когда вы используете fetchAny() запрос может возвращать любое количество записей, и если какая-либо запись возвращается базой данных, будет возвращена первая запись, извлеченная из результирующего набора JDBC.


в Javadoc объясняет разницу. fetchAny() возвращает первую запись, тогда как fetchOne() ожидает, что запрос вернет ноль или одну запись, и выдает исключение, если запрос вернул более одной записи.