Java EBean Play Framework. findOne () не работает? как вернуть один объект вместо findList ()? - PullRequest
0 голосов
/ 14 мая 2018

// Код ниже не работает // Здесь мой запрос просто возвращает один объект, поэтому я пытаюсь использовать метод findOne () //.

Query<Topic> query = Ebean.find(Topic.class);
Topic topic = new Topic();
Topic topic=Topic.find.where().eq("columnName", "nameToMatch").findOne();

// Ниже часть работает, если я использую findList (). Но я должен получить get (0), чтобы // выбрать тему, которая, на мой взгляд, не является хорошей практикой.

List<Topic> topicList = Ebean.find(Topic.class).where().eq("columnName", "NametoMatch").findList();
topicList.get(0)

Кто-нибудь может предложить идеи, как вернуть только один объект вместо списка?

Ответы [ 2 ]

0 голосов
/ 19 июля 2018

Если вы уверены, что объект, который вы хотите найти, является уникальным, вы можете получить его через findUnique(): Topic.find.where().eq("columnName", "nameToMatch").findUnique();

В противном случае вы можете использовать findList() с setMaxRows(), потому что вы нене хочу загружать в память весь набор результатов: Topic.find.where().eq("columnName", "nameToMatch").setMaxRows(1).findList();

0 голосов
/ 29 мая 2018

Я не знаю, существует ли findOne в Ebean, но когда мне нужно получить только один объект, я использую findUnique()

...