2014-10-08 3 views
0

у меня есть 2 лица, чьи экстракты, как эти:Не удалось разрешить свойство в критериях Hibernate

public class Visita { 
    @ManyToOne(fetch=FetchType.LAZY) 
    @JoinColumn(name="pdv_uid") 
    private PuntoDeVenta pdv; 
} 

public class PuntoDeVenta { 
    private Integer idclient; 

    private String zona; 

    @ManyToOne 
    @JoinColumn(name="pdv_categoria_uid", nullable=true) 
    private PuntoDeVentaCategoria categoria; 
} 

public class PuntoDeVentaCategoria { 
    private String descripcion; 
} 

Я пытаюсь сделать ограничения с полями и Дифференц некоторые из них работают, некоторые из них не делают.

С этим корневых критериями:

Criteria criteria = sessionFactory.getCurrentSession().createCriteria(Visita.class).createAlias("pdv", "pdv"); 

Я пытаюсь сделать ограничение с дифферент полями «PuntoDeVenta» и «PuntoDeVentaCategoria» (с и без createAlias), и я получаю исключение «не может разрешить недвижимость », например:

Criteria criteria = sessionFactory.getCurrentSession().createCriteria(Visita.class).createAlias("pdv", "pdv").add(Restrictions.eq("pdv.categoria.descripcion", "example")); 

Спасибо заранее

+0

возможно дубликат [Не удалось разрешить свойство Hibernate] (http://stackoverflow.com/questions/26176915/could-not-resolve-property- hibernate) –

+1

В вашем коде отсутствует много аннотаций, но мы считаем, что они существуют. –

ответ

1

Добавить еще одну строку.

Criteria criteria = sessionFactory.getCurrentSession().createCriteria(Visita.class).createAlias("pdv", "pdv"); 

criteria.createAlias("pdv.categoria", "categoria"); 

Теперь она работает в гораздо ниже

criteria.add(Restrictions.eq("categoria.descripcion", "example")); 
+0

Я еще не пробовал код, но, например, этот запрос не работает: критерии критериев = sessionFactory.getCurrentSession(). CreateCriteria (Visita.class) .createAlias ​​("pdv", "pdv"). Add (Ограничения. eq ("pdv.zona", "example")); и я создал псевдоним для pdv ... – Juanjo

+0

«pdv.zona» должен работать, а поле zona записывается с помощью @Column вправо? –

+0

он не записан с помощью @column, потому что он имеет то же имя, что и в БД. Должен ли я это записать? Я думал, что когда это одно и то же имя, чем в БД, ему не нужна эта аннотация – Juanjo

 Смежные вопросы

  • Нет связанных вопросов^_^