JOIN

2012-01-24 32 views
12
  • JPA Ölçütleri API'sı nasıl kullanılır? Şirket, Ürün/Hizmet, Adres, Ülke ve City.
  • Bir şirket, kategori 1, 1 ülke ve adres şehri içinde 1 şehir ile n ürün olabilir.
  • Bir kullanıcı "İngiltere - Leeds" i seçti.
  • Şimdi db'den şehirlere Leeds şirketini seçmeli ve bu firmaların ürün veya hizmetleriyle ürün/hizmet listesi doldurun. Bundan sonra, kullanıcı üçüncü listeden örneğin diş hekimi 'u seçebilir. Leeds - -
  • Ondan sonra Enlgand biliyorum Dişçi ve ben compenies ile son liste (Leeds diş hekimleri)

public class Company implements java.io.Serializable { 

@Id 
@GeneratedValue(strategy = GenerationType.AUTO) 
private Short companyId; 
@OneToOne(cascade=CascadeType.PERSIST) 
private Address address; 
private String companyName; 
@OneToMany(fetch = FetchType.LAZY, mappedBy = "company",cascade=CascadeType.PERSIST) 
private Set<Product> products = new HashSet<Product>(0); 

public class Product implements java.io.Serializable { 

@Id 
@GeneratedValue(strategy = GenerationType.AUTO) 
@Column(name = "productId", unique = true, nullable = false) 
private Integer productId; 
private Short branchId; 
private String productName; 
private String sku; 
private String category; ------> I am using this field in company search (dentists, garages etc.) 

nasıl sorgulayabilir doldurmak zorunda sadece kategori diş hekimi olan ürünlere sahip olan şirketler?JOIN

CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder(); 

CriteriaQuery<Company> criteria = criteriaBuilder.createQuery(Company.class); 
Root<Company> companyRoot = criteria.from(Company.class); 
//criteria.select(companyRoot); 

TypedQuery<Company> q = em.createQuery(criteria); 
List<Company> results = q.getResultList(); 

Artık her şirketim var, yalnızca doğru kategoriye sahip şirketleri nasıl seçebilirim? Sanırım JOIN'a ihtiyacım olacak ama nasıl kullanacağımı bilmiyorum.

cevap