【发布时间】:2011-06-25 10:45:09
【问题描述】:
我有 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;
}
假设我想从 Elements Table 中获取属于所有者的所有元素,然后我使用:
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”之间的比较。类型必须具有可比性。字符串类型也必须有匹配的排序规则。 如果排序规则不匹配,可能的解决方案是将操作数强制转换为默认排序规则...
有什么方法可以从 Elements Table 中选择并在 WHERE 子句中使用对象(而不仅仅是 String、int...)?
(p.s 我也试过下面的查询,但没有用: TypedQuery query=em.createQuery("SELECT elem FROM Elements elem WHERE elem.owner.id:=elemOwner", Elements.class); query.setParameter("elemOwner", ownerObjectFetchFromDataBase.id); 列出 userList=query.getResultList(); )
谢谢
【问题讨论】:
标签: jpa one-to-many