Praktik terbaik untuk menghitung atribut dalam desain Jhipster
Bayangkan Anda membuat aplikasi balap Jhipster di mana kita memiliki kelas Race (id, raceName, date, List -Participant-, averageTime) yang terbuat dari objek Peserta (yang memiliki id dan waktu balapan dalam hitungan detik untuk setiap balapan). Anda ingin menghitung waktu rata-rata kelas balapan saat waktu dirilis (saat mereka melewati garis finish) dan setiap balapan dibicarakan. Untuk itu, di manakah Anda meletakkan metode untuk menghitung rata-rata tersebut?
Saya melihat 3 opsi:
- Dalam tampilan kelas sudut Anda ketika Anda menunjukkan komponen Race Anda, Anda dapat membawa data dan menghitungnya setiap kali ditampilkan.
- Di suatu tempat dalam Pelaksanaan Layanan Ras.
- Dalam model domain dengan @Transient saat objek Race dibuat
Tolong, jika Anda melihat opsi lain atau praktik terbaik, beri tahu saya. Terima kasih
Entitas Race {raceName String, time Instant, averageTime Double}
Entitas Peserta {racingTime Integer}
hubungan OneToMany {Race {participant (id)} to Participant {race (id)}}
// ATUR PILIHAN PAGINASI: paginasi semua dengan pagination // paginasi ChatMessage dengan gulir tak terbatas // paginasi semua dengan gulir tak terbatas
// SET LAYANAN PILIHAN: layanan semua dengan serviceImpl // layanan semua dengan serviceClass
// DTO: dto semua dengan mapstruct
// PENYARINGAN: filter *
Jawaban
Preferensi saya adalah melakukan ini di lapisan layanan sebagai bagian dari konversi dari model domain ke DTO. Anda dapat mengimplementasikan @Transient
getter dalam Race
model domain yang menghitung rata-rata dan (menurut saya) mapstruct dapat memetakan ini ke DTO. Atau Anda bisa menyetel bidang DTO ekstra di metode layanan Anda. Ada juga di sini tempat Anda dapat memasukkan kalkulasi ke dalam mapper Anda.