die folgende Einheit (einige Spalten aus dieser langen Definition der Kürze halber weggelassen) Gegeben:JPA: Join-Tabelle Syntax
@Table(name = "Products")
public class Products implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@Column(name = "SKU")
private String sku;
@Basic(optional = false)
@Column(name = "ProductName")
private String productName;
private boolean allowPreOrder;
@ManyToMany(mappedBy = "productsCollection")
private Collection<Categories> categoriesCollection;
@JoinTable(name = "Products_CrossSell", joinColumns = {
@JoinColumn(name = "SKU", referencedColumnName = "SKU")}, inverseJoinColumns = {
@JoinColumn(name = "CrossSKU", referencedColumnName = "SKU")})
@ManyToMany
private Collection<Products> productsCollection;
@ManyToMany(mappedBy = "productsCollection")
private Collection<Products> productsCollection1;
@JoinTable(name = "Products_Related", joinColumns = {
@JoinColumn(name = "SKU", referencedColumnName = "SKU")}, inverseJoinColumns = {
@JoinColumn(name = "RelatedSKU", referencedColumnName = "SKU")})
@ManyToMany
private Collection<Products> productsCollection2;
@ManyToMany(mappedBy = "productsCollection2")
private Collection<Products> productsCollection3;
Wie erhalte ich den Satz von verwandten Produkten für ein bestimmtes Produkt SKU?
Die products_related Tabelle sieht wie folgt aus:
Ich weiß, wie die Antwort mit SQL zu bekommen, aber ich bin neu in JPA so habe ich nicht ganz die API und Abfragesyntax noch grokked.
+1 für mich stampfen - ich würde gerne die Lösung sehen. Ich habe meine vorherige Antwort gelöscht, weil sie falsch war. Wenn ich es herausgefunden habe, werde ich ein neues veröffentlichen oder wiederherstellen. Viel Glück :) – javamonkey79