我正在考虑使用 DTO 投影 - 我有两个具有一对多关系的实体(EntityOne 的一个实例链接到 EntityTwo 的多个实例),并且我想将结果作为新的 DTO 对象返回 - 我的内容我目前正在尝试的是这样的:
query.select(Projections.constructor(MyDtoObject.class,
entityOne, list(entityTwo)))
.from(entityOne, entityTwo)
.where(......)
Run Code Online (Sandbox Code Playgroud)
MyDtoObject 看起来像这样:
public class MyDtoObject {
private EntityOne entityOne;
private Collection<EntityTwo> entityTwoCollection
// getters, setters and an all args constructor method here
}
Run Code Online (Sandbox Code Playgroud)
然而,这会带回比预期多得多的 MyDtoObjects,而且看起来每个 MyDtoObjects 只保存一个entityTwo 对象而不是一个集合。
如何指示 queryDSL 创建具有多个entityTwo 条目的 MyDtoObjects 结果对象?list(..) 方法在我上面的场景中是否执行任何操作?
我正在尝试使用 Axios 的 Promise.all 方法同时进行多个 API 调用,基于以下示例:
getUsers() {
return axios.get('/users');
}
getSessions() {
return axios.get('/sessions');
}
Promise.all([getUsers(), getSessions()])
.then(results => {
// Use the data
})
.catch(error => {
// Catch the error
});
Run Code Online (Sandbox Code Playgroud)
但是,由于我只知道在此阶段需要根据承诺链中先前 API 调用的结果进行哪些并发 API 调用,因此我尝试将匿名函数数组传递给表单中的函数的:
var array = [];
array.push(() => {return axios.get('/users')});
array.push(() => {return axios.get('/sessions')});
Promise.all(array).then....
Run Code Online (Sandbox Code Playgroud)
这是行不通的,我知道这是因为我传入的是函数对象,而不是像方法所期望的那样引用实际的 Promise 对象。但是,仅将 axios.get(...) 方法推送到数组会导致它们立即被调用,而不是稍后执行 Promise.all 方法时调用。
我不确定如何正确地做到这一点,或者是否有更好的方法来实现我所追求的......
我希望使用Java客户端SDK在我的Couchbase数据库上执行查询,该客户端SDK将返回包含每个结果的文档ID的结果列表.目前我正在使用:
Statement stat = select("*").from(i("myBucket"))
.where(x(fieldIwantToGet).eq(s(valueIwantToGet)));
N1qlQueryResult result = bucket.query(stat);
Run Code Online (Sandbox Code Playgroud)
但是,N1qlQueryResult似乎只返回没有任何关联元数据的JsonObjects列表.看看文档,似乎我想要一个返回Document对象列表的方法,但是我看不到任何我称之为执行工作的存储桶方法.
有人知道这样做的方法吗?