我在Java,Answer和Collaborator中有2个POJO类,处于多对多关系中.
class Answer {
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "ANSWERS_COLLABORATORS", joinColumns = { @JoinColumn(name = "aid") }, inverseJoinColumns = { @JoinColumn(name = "cid") })
private Set<Collaborator> collaborators = new HashSet<Collaborator>(0);
}
Run Code Online (Sandbox Code Playgroud)
类Answer有一套Collaborator,但是Collaborator不保留一套Answer.我需要从Hibernate做的CriteriaQuery是找到id给出的答案的协作者.
我已经使用结果转换器在Hibernate Criteria(org.hibernate.Criteria)中完成了这个,但是在使用时我遇到了困难CriteriaQuery,因为我没有给出连接的答案列表.
我有这样的Bean
Class TestA
{
Map<String,TestB> testBMap;
}
Class TestB
{
String data;
...
}
Run Code Online (Sandbox Code Playgroud)
我想取TestA随着地图数据的testBMap地方key ='test1'.
我怎么能用Hibernate做到这一点.
我的休眠实体中有以下属性:
@ElementCollection(targetClass = String.class, fetch = FetchType.EAGER)
@CollectionTable(name="FORMDATA", joinColumns = @JoinColumn(name="FORM_ID"))
private Map<String, String> formData;
Run Code Online (Sandbox Code Playgroud)
我想使用 hibernate Criteria 进行查询,其中我想将表单与给定的键值对进行匹配,如下所示:
criteria.add(Restrictions.like("formdata.key", "%"+value+"%").ignoreCase());
Run Code Online (Sandbox Code Playgroud)
其中“键”和“值”通过方法参数传递。
有人知道这应该如何运作吗?对我来说,休眠文档对此并不清楚。
非常感谢,B.