Java EBean Play Framework. findOne() не работает? как вернуть один объект вместо findList()?
// Ниже код не работает // Здесь мой запрос просто возвращает один объект, поэтому я пытаюсь использовать метод 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 ответа
Я не знаю, если findOne
существует в Ebean, но когда мне нужно получить только один объект, который я использую findUnique()
Если вы уверены, что объект, который вы хотите найти, является уникальным, вы можете получить его через findUnique()
: Topic.find.where().eq("columnName", "nameToMatch").findUnique();
В противном случае вы можете использовать findList()
с setMaxRows()
потому что вы не хотите загружать в память весь набор результатов:Topic.find.where().eq("columnName", "nameToMatch").setMaxRows(1).findList();