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();

Другие вопросы по тегам