Менеджер сущностей find() со свойством Map

У меня есть EntityManager, и я ищу с помощью метода find(Entity.class, primaryKey, mapProperty). Вопрос в том, что я установил эту карту?

@Entity
public class Entity{
    @Id
    private int id;

    @ManyToOne
    private Property prop;

    //setter e getter method
    //..
}

Короче говоря, мне нужно найти все кортежи, которые имеют определенное значение для внешнего ключа. Или, если хотите, лучше использовать CriteriaAPI?


person giulius    schedule 20.07.2011    source источник


Ответы (1)


Лучше использовать Criteria API или JP QL. Возможно, вы неверно истолковываете значение третьего аргумента для поиска. Это не какая-то карта, которая есть у вас в вашей сущности. Он содержит «стандартные и специфичные для производителя свойства и подсказки», как объяснено, например, в Javadocs. Вы не устанавливаете его, если у вас нет тех, чтобы дать. Тогда лучше использовать find(entityClass, primaryKey), но, как видите, он предоставляет возможность только запроса с первичным ключом.

person Mikko Maunu    schedule 07.10.2011