![](/img/trans.png)
[英]Where should business logic (and what is that?) really live and how to do that with Spring?
[英]With Spring / Hibernate, how should this simple business logic be done?
假設我有一個包含兩個實體的簡單項目,Account 和 Transactions,其中 Account 實體具有 id、accountName 和 transactions 等字段,而 Transaction 實體具有 id、description 和 amount 等字段。
我想顯示一個簡單的表格,它是給定年份的賬戶列表和現金流量(即給定年份的交易總和)。 實現這一目標的最佳方法是什么?
一種方法是在 TransactionService 上使用一個方法,如 getCashflow(Account account, int year),但這需要為每個帳戶調用此方法,然后將結果傳遞給與帳戶解除關聯的 model。
看起來最好的方法是在 Account 上使用 getCashflow(int year) 方法,但是如果不使用 TransactionService,如何計算總和呢? 還是應該這樣做? 如何?
我查看了派生屬性,但這不是屬性,因為它是給定年份的結果。
我知道這似乎是一個簡單的問題,但我無法弄清楚教科書的方法是什么。
賬戶有交易,你需要在交易上進行一些操作(總和)的賬戶列表,所以它必須從AccountService
調用,方法如getAccountListWithYearlyCashflow(int year)
並在該方法中從AccountRepository
/datasource 和每個賬戶檢索所有可能的賬戶獲取過濾的transactionList
並對其執行求和。 由於TransactionService
僅處理事務,因此在那里進行任何操作沒有意義。 希望我能正確理解你的問題:)
正如德克斯特所說,將所有交易 ID 存儲在帳戶 class 中效率低下。交易 class 成為擁有方並使用帳戶 ID 引用帳戶會更好。
然后,使用 TransactionRepository,您可以讓 Spring 為您完成工作,方法是創建一個簡單的查詢來查找給定年份的所有交易,並按帳戶 ID 對其進行分組以查找您的年度現金流量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.