Les entités sont suiventRequête personnalisée pour extraire des données de plusieurs tables au printemps données Jpa
Tableau de produit
@Entity
public class Product implements Serializable {
/*@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;*/
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@NotNull(message = "Product name must not be null")
@NotEmpty
private String name;
@ManyToOne
@JoinColumn(name="category_id")
private Category category;
@ManyToMany(mappedBy = "productlist")
private List<OrderDetail> orderDetail =new ArrayList<OrderDetail>();
//getters setter
OrderDetail Tableau
@Entity
public class OrderDetail {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@ManyToOne
@JoinColumn(name="purchased_By")
private user PurchasedBy;
@ManyToMany
private Set<Product> productlist = new HashSet<Product>();
Ces entités génératrices de tableau nommé 'order_detail_productlist' et champs comme suit order_detail_id et productlist_id
Je courais requête suivante dans l'éditeur de MySQL et qui fonctionne
select u.id, r.name from order_detail u inner join order_detail_productlist ur on(u.id=ur.order_detail_id) inner join product r on(ur.productlist_id=r.id) where u.id="?"
mais quand je cours dans le dépôt de printemps avec @Query annotation qui me donne exception. J'ai essayé de changer le nom de Order_detail en OrderDetail selon les entités mais la même exception dans les deux cas.
Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: Path expected for join! [select r.name from com.example.Domain.OrderDetail u inner join order_detail_productlist ur on(u.id=ur.order_detail_id) inner join Product r on(ur.productlist_id=r.id) where u.id= :id ]
ce que je veux. J'essaie d'utiliser de cette façon. Je veux obtenir des données de plusieurs tables, comme des produits qui sont des commandes etc.