@Entity
@Table(name = "test")
public class A {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID")
private int id;
@OneToMany(fetch = FetchType.EAGER)
@JoinColumn(name = "B_ID")
private List<B> details;
......
}
@Entity
@Table(name = "test1")
public class B {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID")
private int id;
@Column(name = "NAME")
private String name;
......
}
标准
Criteria criteria = session.createCriteria(A.class)
.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
.add(Restrictions.in(id, list))
List = criteria.list();
因为有很多ID为“1”的匹配行,所以我会得到下面的结果。但我只需要第一个
结果:
{
"id":1,
"details":[
{
"name":abc,
},
{
"name":123,
},
{
"name":xyz,
},
}
尝试获得如下结果:仅第一行,而不是test1表(B.class)中的所有行
{
"id":1,
"details":[
{
"name":abc,
}
}
我正在使用hib条件来获取结果。我想限制从连接表中获取的数据(一对多Map)。这可能吗?
请让我知道如何做到这一点。
1条答案
按热度按时间qco9c6ql1#
不完全确定您的目标是什么,但是:
1如果您知道将只有结果,则用途:
2如果您希望有很多结果,可以先排序,然后设置您想要的最佳结果数(下面的前十个):