У меня есть 2 объекта:
@Entity
public class Elements implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private Owner owner;
}
@Entity
public class Owner implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@OneToMany(fetch=FetchType.LAZY)
List<Elements> elements;
}
Предположим, я хочу получить все элементы, принадлежащие владельцу, из таблицы элементов, и поэтому я использую:
TypedQuery query=em.createQuery("SELECT elem FROM Elements elem WHERE
elem.owner:=elemOwner", Elements.class);
query.setParameter("elemOwner", ownerObjectFetchFromDataBase);
List<TrendUsers> userList=query.getResultList();
Но я получаю следующую ошибку:
Сравнения между BLOB и BLOB не поддерживаются. Типы должны быть сопоставимы. Типы строк также должны иметь сопоставления.
Если сопоставление не совпадает, возможное решение состоит в том, чтобы привести операнды, чтобы заставить их к сопоставлению по умолчанию ...
Есть ли способ выбрать из таблицы элементов и в предложении WHERE использовать объект (а не только String, int ...)?
(p.s Я также попробовал запрос ниже, и он не работал:
TypedQuery query = em.createQuery ("ВЫБРАТЬ элемент из элементов элемента ГДЕ elem.owner.id:=elemOwner", Elements.class);
query.setParameter ("elemOwner", ownerObjectFetchFromDataBase.id);
List userList = query.getResultList ();
)
Спасибо