簡體   English   中英

內部聯接在play框架ebean中

[英]Inner join in play framework ebean

我有一個查詢,我想在我的產品模型中寫

select * from shop inner join product on product.shops_id=shop.id where product.name=keyword

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;

}

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;
}

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

每次關鍵字都會改變。 我提到了類似的問題,但他們理解其中的任何一個。 任何幫助,將不勝感激

在你的模型中有適當的關系,它將是:

Shop.find.where().like("product.name", keyword).findList();

無論如何,我們對你的模型一無所知。

這是您的問題的解決方案:

首先將Finder添加到Product類

public static Finder<Long,Product> find = new Finder<Long,Product>(
    Long.class, Product.class
); 

將屬性shops更改為在Product類中shop 當有單個對象時給出復數名稱是不合適的。

然后檢索包含給定名稱產品的商店列表添加類似於此的代碼:

List<Product> productList = Product.find.where().like("name", keyword).findList();
List<Shop> shopList = new ArrayList<Shop>();
for(Product product:productList)
    shopList.add(product.shop);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM