EDIT> Я нахожусь в тупике ... поэтому я могу продолжить поиск основной причины .. Пожалуйста, расскажите мне, как сделать простой критерий для многих и многих отношений, которые имеют больше чем один эквалайзер, например, как привлечь человека, говорящего по русскому языку &, в примере, показанном здесь ...Спящий режим Многие из многих критериев Прогноз
Моя ситуация такая, как у меня есть человек и языки двух классов, с отношениями. И я использую критерии для поиска - возьмите всех лиц, которые говорят напр. Английский и немецкий
@Entity
public class Person implements Serializable {
private int id;
...........
private Set<Languages> languages = new HashSet<Languages>();
...............
@ManyToMany
@JoinTable(name = "link_person_languages")
public Set<Languages> getLanguages() {
return languages;
}
}
@Entity
public class Languages implements Serializable {
private int id;
private String name;
@Id
@GeneratedValue
public int getId() {
return id;
}
@Column(nullable = false, length = 40, unique = true)
public String getName() {
return name;
}
Критерии
Criteria crit = session.createCriteria(Person.class);
crit.setCacheable(true);
ProjectionList projList = Projections.projectionList();
projList.add(Projections.property("languages"));
c = enumMap.get(attr);
if (c.isChanged()) {
Criteria crit2 = crit.createCriteria("languages");
Object[] o = (Object[]) c.getAnswer();
Conjunction con = Restrictions.conjunction();
for (int j = 0; j < o.length; j++) {
Criterion tmp = Restrictions.eq("id", ((Languages)o[j]).getId());
con.add(tmp);
}
crit2.add(con);
}
crit.setProjection(projList);
retList = crit.list();
И самое смешное, если я установить его только для одного языка, я получить надлежащий список лиц, но и для более чем одного языка я не получаю ни , я перепроверил мою базу и задал один человек, чтобы говорить на двух языках. Но что советы пц больше всего в том, что результатом проекции в Object [] на том месте, где Установить языки должны быть, есть NULL значение ......
пожалуйста, помогите Тпх
Я думал об одном и том же, но я не был уверен, но главная проблема здесь в том, как получить выбор из набора, потому что Объект [] всегда имеет значение null на этом месте ... –
Darwly