J'ai 2 entités:JPA Utilisation clause WHERE
@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;
}
Supposons que je veux aller chercher tous elemets bellonging au propriétaire de éléments de table et therfore j'utilise:
TypedQuery query=em.createQuery("SELECT elem FROM Elements elem WHERE
elem.owner:=elemOwner", Elements.class);
query.setParameter("elemOwner", ownerObjectFetchFromDataBase);
List<TrendUsers> userList=query.getResultList();
Mais je reçois les éléments suivants erreur: Les comparaisons entre 'BLOB' et 'BLOB' ne sont pas supportées. Les types doivent être comparables. Les types de chaîne doivent également avoir un classement correspondant. Si le classement ne correspond pas, une solution possible est de jeter opérandes de les forcer à la collation par défaut ...
Est-il possible que je peux choisir d'éléments de table et dans le WHERE objet l'utilisation de la clause (et pas seulement cordes , int ...)?
(ps J'ai aussi essayé la requête ci-dessous et il n'a pas fonctionné: TypedQuery requête = em.createQuery ("SELECT ELEM des éléments élém OU elem.owner.id:=elemOwner", Elements.class); query.setParameter ("elemOwner", ownerObjectFetchFromDataBase.id) Liste userList = query.getResultList(); )
Merci
Et ajoutez 'mappedBy = "propriétaire"' 'à elements' » '@ OneToMany' pour définir une relation bidirectionnelle – axtavt
@axtavt: bon point. Merci. je mettrai à jour mon message pour inclure – bert