内部联接在play框架ebean中

akk*_*kku 5 java inner-join playframework ebean

我有一个查询,我想在我的产品模型中写

select * from shop inner join product on product.shops_id=shop.id where product.name=keyword
Run Code Online (Sandbox Code Playgroud)

Shop.java

public class Shop extends Model {

    @Id
    @SequenceGenerator(name="shop_gen", sequenceName="shop_id_seq", allocationSize=1)
    @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="shop_gen")
    @Column(name="id")
    public Long id;

    @Required
    public String name;

    @Required
    public String addressLine1;

    public String addressLine2;

    public String addressLine3;

    @Required
    public String city;

    @Required
    public String town;

    @Required
    public String phoneNumber;

    @OneToMany(mappedBy = "shops",cascade = CascadeType.REMOVE)
    public List<Product> products=new ArrayList<>();


    @Required
    @OneToOne
    public String category;

    @Lob
    @Column(name = "shop_pic")
    public  byte[] shop_pic;


    @ManyToOne
    @Required
    public User owner;

}
Run Code Online (Sandbox Code Playgroud)

Product.java

public class Product extends Model {
   @Id
    @SequenceGenerator(name="product_gen", sequenceName="product_id_seq", allocationSize=1)
    @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="product_gen")
    @Column(name="id")
    public Long id;
    @Required
    public String name;
    @Required
    public Float price;
    @OneToOne
    @Required
    public String category;
    @ManyToOne
    public Shop shops;
}
Run Code Online (Sandbox Code Playgroud)

我的主要目的是找到有特定产品的商店列表.

每次关键字都会改变.我提到了类似的问题,但他们理解其中的任何一个.任何帮助,将不胜感激

bie*_*ior 1

如果模型中有适当的关系,它将是:

Shop.find.where().like("product.name", keyword).findList();
Run Code Online (Sandbox Code Playgroud)

无论如何,我们对你们的模型一无所知。