Java QueryDSL-参与联接的总和
鉴于以下类别:Java QueryDSL-参与联接的总和,java,querydsl,Java,Querydsl,鉴于以下类别: class User { @OneToMany Set<Transaction> transactions } class Transaction { BigDecimal money; } 作为奖励——如果将货币持久化为Joda货币类型,而不是BigDecimal,这可能吗 (我正在使用支持来促进持久性)类似的东西应该可以工作 QUser $user = QUser.user; QTransaction $transaction = Q
class User {
@OneToMany
Set<Transaction> transactions
}
class Transaction {
BigDecimal money;
}
作为奖励——如果将货币
持久化为Joda货币类型,而不是BigDecimal,这可能吗
(我正在使用支持来促进持久性)类似的东西应该可以工作
QUser $user = QUser.user;
QTransaction $transaction = QTransaction.transaction;
query().from($user)
.innerJoin($user.transactions, $transaction) //inner join clause
.where($user.eq(myUser))
.singleResult($transaction.money.sum());
Querydsl尚未直接支持Joda Money,因此使用Joda Money的sum()方法将无法直接使用。您的意思是singleResult(transaction.Money.sum())?啊!!谢谢你。请张贴作为答复,以便我可以接受。另外,是否可以使用JodaMoney而不是BigDecimal来执行此操作?
QUser $user = QUser.user;
QTransaction $transaction = QTransaction.transaction;
query().from($user)
.innerJoin($user.transactions, $transaction) //inner join clause
.where($user.eq(myUser))
.singleResult($transaction.money.sum());