0
为什么没有此查询工作?Hibernate的连接查询不工作:Java/JSP的与Hibernate,Netbeans的IDE/GlassFish中时,Windows 10
query = "SELECT itm.itemId, itm.itemModel, itm.itemDescription, "
+ " itmImages.imageFileName, part.participant_id "
+ " FROM Users user "
+ " INNER JOIN user.participant part "
+ " INNER JOIN part.addresses addr "
+ " INNER JOIN part.item itm "
+ " INNER JOIN itm.itemImages itmImages "
+ " WHERE user.userType LIKE '%borrow%') AND itm.itemDescription LIKE '%mower%') AND addr.addressType = 'primary'";
它总是返回的所有项目,忽略itemDescription喜欢...我检查了数据库和所有加入的ID都很好
这工作:
query = "SELECT user"
+ " FROM Users user "
+ " INNER JOIN user.participant part "
+ " INNER JOIN part.addresses addr "
+ " WHERE user.userType LIKE '%borrow%') AND addr.addressType = 'primary'";
我有一个表的用户。它与表参与者有一对多的关联。
在Users.java我..
private Set<Participant> participant = new HashSet<Participant>();
与
@OneToMany
@JoinTable(name = "echomarket.hibernate.Participant")
@JoinColumn(name = "user_id")
public Set<Participant> getParticipant() {
return participant;
}
public void setParticipant(Set<Participant> participant) {
this.participant = participant;
}
此连接工作正常。
在Participant.java我
private Set<Addresses> addresses = new HashSet<Addresses>();
与
@OneToMany
@JoinTable(name = "echomarket.hibernate.Addresses")
@JoinColumn(name = "participant_id")
public Set<Addresses> getAddresses() {
return addresses;
}
public void setAddresses(Set<Addresses> addresses) {
this.addresses = addresses;
}
而且 私人设置项目=新的HashSet();
随着
@OneToMany
@JoinTable(name = "echomarket.hibernate.Items")
@JoinColumn(name = "participant_id")
public Set<Items> getItem() {
return item;
}
没有关于用户协会声明。
In Addresses.java我没有任何关联。
在Items.java我
private Set<ItemImages> itemImages = new HashSet<ItemImages>();
与
@OneToMany
@JoinTable(name = "echomarket.hibernate.ItemImages")
@JoinColumn(name = "itemId")
public Set<ItemImages> getItemImages() {
return itemImages;
}
public void setItemImages(Set<ItemImages> itemImages) {
this.itemImages = itemImages;
}
在ItemImages.java我并没有关联...
你很大帮助的感谢。如果您需要了解更多信息,请只问...
利兹
顺便说一句,只是试图GROUP BY上检索到的所有领域,仍返回太多记录。 – emm
你如何使用你的查询? – degr
在managedBean中。 – emm