Praktik terbaik untuk menghitung atribut dalam desain Jhipster

Dec 17 2020

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:

  1. Dalam tampilan kelas sudut Anda ketika Anda menunjukkan komponen Race Anda, Anda dapat membawa data dan menghitungnya setiap kali ditampilkan.
  2. Di suatu tempat dalam Pelaksanaan Layanan Ras.
  3. 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

3 HopeyOne Dec 17 2020 at 06:55

Preferensi saya adalah melakukan ini di lapisan layanan sebagai bagian dari konversi dari model domain ke DTO. Anda dapat mengimplementasikan @Transientgetter dalam Racemodel 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.