次のエンティティがあります
@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