Как искать в базе данных h2 Play Framework 2.7.3? - PullRequest
0 голосов
/ 31 января 2020

Мне нужно выполнить поиск в базе данных h2 для Company экземпляров класса, которые имеют спецификацию c code, но я не могу понять, как.

Я пытался использовать класс Finder , но в версии, которую я использую, похоже, нет методов поиска, кроме findbyid(). Вот начало моего класса компании:

@Entity
public class Company extends Model {
    @Id
    public Integer id;
    public String code;
    public String name;
    public String adress;
    public String fiscalCode;
    public String bankAccount;

    public static Finder<Integer, Company> find = new Finder<>(Company.class);

Спасибо!

1 Ответ

0 голосов
/ 31 января 2020

В зависимости от версии Play, которую вы используете, я бы предложил попробовать следующее:

Company.find.where().like("code", "%foo%").findList();

или

  1. Определите свой искатель
public class CompanyFinder extends Finder<Long,Company> {

  public CompanyFinder() {
    super(Company.class);
  }

  // Add finder methods ...

  public Company byCode(String code) {
    return query().eq("code", code).findOne();
  }
}
Обновите вашу сущность, указав ссылку на этот искатель:
@Entity
public class Company extends BaseModel {

  public static final CompanyFinder find = new CompanyFinder();
  ...
}
Позвоните искателю:

Company c = Company.find.byCode("foo");

...