странно Я не могу найти что-то простое, у меня есть 2 объекта, один внутри другого, и мой вопрос в том, как я могу получить доступ к свойству из суб-сущности?Критерии, как получить доступ к свойству подкласса
объект 1
@Getter
@Setter
@Entity
public class ObjectA{
String name;
String surname;
ObjectB B;
}
объект 2
@Setter
@Getter
@Entity
ObjectB{
String family;
String range;
}
что я хочу, чтобы получить доступ ПАНСИОНОВ и диапазон с поиском критериев, так что я сделал это:
public List<ObjectA> search(String name, String surname, String family, String range) {
Criteria c = HibernateUtil.getSessionFactory().getCurrentSession().createCriteria(ObjectA.class, "a");
if (!name.equals("")) {
c.add(Restrictions.eq("a.name", name));
}
if (!surname.equals("")) {
c.add(Restrictions.eq("a.surname", surname));
}
if (!family.equals("")) {
c.add(Restrictions.eq("a.B.family", family));
}
if (!range.equals("")) {
c.add(Restrictions.eq("a.B.range", range));
}
return c.list();
}
имя a d фамилия может быть доступна, но семья и диапазон не могут. 'не удалось устранить свойство' Что мне делать?
благодаря = D
Этот документ не является полезным: c (уже посмотрел на него). Они действительно объясняют, как создавать псевдонимы, но они не показывают реализацию объекта. Что, например, представляет котенок? это имя подкласса? – Eildosa
Котята - это набор элементов, сопоставленных с классом Cat. В вашем случае это что-то вроде: if (! Family.equals ("")) {c.createAlias ("B", "B"); c.add (Restrictions.eq («a.B.family», семейство)); } – WeMakeSoftware
спасибо, что это помогло, в конце концов, это сработало: c.createAlias («a.B», «subB»). Add (Restrictions.eq («subB.family», family)); – Eildosa