我有以下實體如何編寫設置集合的Hibernate查詢
@Entity
public class Employee{
private Integer id;
private String name;
private String address;
private Date created;
@OneToMany(mappedBy = "employee")
private Set<Language> languages = new HashSet<AlbumUser>()
}
和語言實體
@Entity
public class Language{
private String name;
@ManyToOne
@JoinColumn(name = "employee_id")
private Employee employee;
}
我的語言表看起來像下面
我想選擇名稱以A開頭並知道Java和C的所有員工這樣做,我想下面
DetachedCriteria criteria = DetachedCriteria.forClass(Employee.class,"employee");
criteria.add(Restrictions.ilike("name", "A%"));
criteria.add(Restrictions.in("languages",languageSet));
return getHibernateTemplate().findByCriteria(criteria)
其中languageSet是
Set<Language> languageSet = new HashSet();
languageSet.add(new Language("Java"));
languageSet.add(new Language("C"));
我可以看到我的嘗試是完全錯誤的......我是新來的休眠可以有一個人,請幫助我吧..
Caused by: java.sql.SQLException: No value specified for parameter 2
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
at com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:2176)
at com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:2100
我已經通過提供的鏈接...但由於我是休眠的新手,我無法按照文檔..所以我試圖通過做... ...你可以讓我知道查詢哪些我可以在這裏使用 –
好的。你上面試過的查詢有什麼問題? – Saket
它給出了以下錯誤......「沒有爲參數2指定值」 –