Java 游戏框架ebean中的内部连接
我想在我的产品模型中写一个查询Java 游戏框架ebean中的内部连接,java,playframework,inner-join,ebean,Java,Playframework,Inner Join,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)
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;
}
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添加到产品类中
public static Finder<Long,Product> find = new Finder<Long,Product>(
Long.class, Product.class
);
List<Product> productList = Product.find.where().like("name", keyword).findList();
List<Shop> shopList = new ArrayList<Shop>();
for(Product product:productList)
shopList.add(product.shop);