たとえば、顧客アカウントの残高の変化を時間の経過とともに保存しているとします。変更の金額をテーブル(フィールドはamount
)に保存し、変更の日付(date
)も保存します。
変更が1つあり、そのユーザーの以前の変更の量を取得したいとします(これはオブジェクトのプロパティではありません)。SQLクエリを手動で記述している場合は、次のようにします。
SELECT *,
(SELECT b1.amount
FROM balanceHistory as b1
WHERE b1.date < b0.date
AND customer_id = 123
ORDER BY B1.date
LIMIT 1) as prev_balance
FROM balanceHistory as b0
WHERE customer_id = 123;
Symfonyでは、カスタムクエリを記述し、アカウントを変更するたびに、その変更に関連する以前の変更をフェッチすることができます。しかし、私は多くのオブジェクトを反復処理しているため、これはコストがかかります。
'previousChange'のような新しいプロパティを追加できますが、ORM情報を追加せず、ORM関連のものを台無しにすることはできませんか?可能であれば、このような手動結合を行った後、このプロパティにアクセスするにはどうすればよいですか?