Note that there are some explanatory texts on larger screens.

plurals
  1. POHibernate JPA searching two joined tables
    primarykey
    data
    text
    <p>I am pretty new to Hibernate and JPA implementation in Spring, so basically have set up a MySQL 5 database which maps to the domain objects below.</p> <p>I am trying to search for <code>Location</code> on the <code>Company_Details</code> table but I can't figure out how to search the class <code>Product_Details</code> for <code>Product_Name</code> at the same time</p> <p>If anyone could help that would be great.</p> <p><strong>Company_Details</strong></p> <pre><code>@Entity public class Company_Details implements Serializable{ /** * */ private static final long serialVersionUID = 3336251433829975771L; @Id @GeneratedValue private Integer Id; private String Company; private String Address_Line_1; private String Address_Line_2; private String Postcode; private String County; private String Country; private String Mobile_Number; private String Telephone_Number; private String URL; private String Contact; private String Logo_URL; private double Amount_Overall; private double Amount_Paid; private Timestamp Date_Joined; private int Account_Details; @OneToMany(fetch = FetchType.EAGER, mappedBy = "Company_Id") private List&lt;Product_Details&gt; products; public Integer getId() { return Id; } public void setId(Integer id) { Id = id; } public String getCompany() { return Company; } public void setCompany(String company) { Company = company; } public String getAddress_Line_1() { return Address_Line_1; } public void setAddress_Line_1(String address_Line_1) { Address_Line_1 = address_Line_1; } public String getAddress_Line_2() { return Address_Line_2; } public void setAddress_Line_2(String address_Line_2) { Address_Line_2 = address_Line_2; } public String getPostcode() { return Postcode; } public void setPostcode(String postcode) { Postcode = postcode; } public String getCounty() { return County; } public void setCounty(String county) { County = county; } public String getCountry() { return Country; } public void setCountry(String country) { Country = country; } public String getMobile_Number() { return Mobile_Number; } public void setMobile_Number(String mobile_Number) { Mobile_Number = mobile_Number; } public String getTelephone_Number() { return Telephone_Number; } public void setTelephone_Number(String telephone_Number) { Telephone_Number = telephone_Number; } public String getURL() { return URL; } public void setURL(String uRL) { URL = uRL; } public String getContact() { return Contact; } public void setContact(String contact) { Contact = contact; } public String getLogo_URL() { return Logo_URL; } public void setLogo_URL(String logo_URL) { Logo_URL = logo_URL; } public double getAmount_Overall() { return Amount_Overall; } public void setAmount_Overall(double amount_Overall) { Amount_Overall = amount_Overall; } public double getAmount_Paid() { return Amount_Paid; } public void setAmount_Paid(double amount_Paid) { Amount_Paid = amount_Paid; } public Timestamp getDate_Joined() { return Date_Joined; } public void setDate_Joined(Timestamp date_Joined) { Date_Joined = date_Joined; } public int getAccount_Details() { return Account_Details; } public void setAccount_Details(int account_Details) { Account_Details = account_Details; } public List&lt;Product_Details&gt; getProducts() { return products; } public void setProducts(List&lt;Product_Details&gt; products) { this.products = products; } </code></pre> <p><strong>Product_Details</strong></p> <pre><code>@Entity public class Product_Details implements Serializable{ /** * */ private static final long serialVersionUID = 6477618197240654478L; @Id @GeneratedValue private Integer Id; private Integer Company_Id; private String Product_Name; private String Description; private String Main_Photo_URL; private String Other_Photo_URLS; private Integer Total_Bookings; private double Average_Rating; private Integer Number_Of_Slots; private Integer Time_Per_Slot; private double Price_Per_Slot; private String Monday_Open; private String Tuesday_Open; private String Wednesday_Open; private String Thursday_Open; private String Friday_Open; private String Saturday_Open; private String Sunday_Open; private String Dates_Closed; public Integer getId() { return Id; } public void setId(Integer id) { Id = id; } public Integer getCompany_Id() { return Company_Id; } public void setCompany_Id(Integer company_Id) { Company_Id = company_Id; } public String getProduct_Name() { return Product_Name; } public void setProduct_Name(String product_Name) { Product_Name = product_Name; } public String getDescription() { return Description; } public void setDescription(String description) { Description = description; } public String getMain_Photo_URL() { return Main_Photo_URL; } public void setMain_Photo_URL(String main_Photo_URL) { Main_Photo_URL = main_Photo_URL; } public String getOther_Photos_URLS() { return Other_Photo_URLS; } public void setOther_Photos_URLS(String other_Photo_URLS) { Other_Photo_URLS = other_Photo_URLS; } public Integer getTotal_Bookings() { return Total_Bookings; } public void setTotal_Bookings(Integer total_Bookings) { Total_Bookings = total_Bookings; } public double getAverage_Rating() { return Average_Rating; } public void setAverage_Rating(double average_Rating) { Average_Rating = average_Rating; } public Integer getNumber_Of_Slots() { return Number_Of_Slots; } public void setNumber_Of_Slots(Integer number_Of_Slots) { Number_Of_Slots = number_Of_Slots; } public Integer getTime_Per_Slot() { return Time_Per_Slot; } public void setTime_Per_Slot(Integer time_Per_Slot) { Time_Per_Slot = time_Per_Slot; } public double getPrice_Per_Slot() { return Price_Per_Slot; } public void setPrice_Per_Slot(double price_Per_Slot) { Price_Per_Slot = price_Per_Slot; } public String getMonday_Open() { return Monday_Open; } public void setMonday_Open(String monday_Open) { Monday_Open = monday_Open; } public String getTuesday_Open() { return Tuesday_Open; } public void setTuesday_Open(String tuesday_Open) { Tuesday_Open = tuesday_Open; } public String getWednesday_Open() { return Wednesday_Open; } public void setWednesday_Open(String wednesday_Open) { Wednesday_Open = wednesday_Open; } public String getThursday_Open() { return Thursday_Open; } public void setThursday_Open(String thursday_Open) { Thursday_Open = thursday_Open; } public String getFriday_Open() { return Friday_Open; } public void setFriday_Open(String friday_Open) { Friday_Open = friday_Open; } public String getSaturday_Open() { return Saturday_Open; } public void setSaturday_Open(String saturday_Open) { Saturday_Open = saturday_Open; } public String getSunday_Open() { return Sunday_Open; } public void setSunday_Open(String sunday_Open) { Sunday_Open = sunday_Open; } public String getDates_Closed() { return Dates_Closed; } public void setDates_Closed(String dates_Closed) { Dates_Closed = dates_Closed; } </code></pre> <p>}</p> <pre><code>@Service public class ProductServiceImpl implements ProductService{ private final static Logger LOG = Logger.getLogger(ProductServiceImpl.class.getName()); @PersistenceContext EntityManager em; @Transactional public List&lt;Company_Details&gt; search(Search search) { LOG.info("Entering search method"); CriteriaBuilder builder = em.getCriteriaBuilder(); CriteriaQuery&lt;Company_Details&gt; c = builder.createQuery(Company_Details.class); Root&lt;Company_Details&gt; companyRoot = c.from(Company_Details.class); c.select(companyRoot); c.where(builder.equal(companyRoot.get("County"),search.getLocation())); return em.createQuery(c).getResultList(); } </code></pre> <p>}</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload