Avatar ·

Kotlin के साथ JPA/Hibernate: बिना पैरामीटर वाले कंस्ट्रक्टर की समस्या (default constructor hell)

सभी को नमस्कार! मैं लगभग छह महीने से Kotlin में कोड लिख रहा हूँ, और JPA/Hibernate का उपयोग करते समय मुझे एक समस्या का सामना करना पड़ा। मेरे पास एक सरल entity है:

\n\n
@Entity\ndata class User(\n    @Id @GeneratedValue\n    val id: Long = 0,\n    val name: String,\n    val email: String\n)\n
\n\n

एप्लिकेशन शुरू करने पर Hibernate एक exception फेंकता है:

\n\n
org.hibernate.InstantiationException: No default constructor for entity: com.example.User\n
\n\n

मैं समझता हूँ कि Hibernate को reflection के माध्यम से ऑब्जेक्ट बनाने के लिए बिना पैरामीटर वाले कंस्ट्रक्टर की आवश्यकता होती है। लेकिन Kotlin में data class में ऐसा कंस्ट्रक्टर नहीं होता, जब तक कि पैरामीटर के लिए डिफ़ॉल्ट मान न दिए जाएँ। मैंने Jackson से @NoArg जोड़ने की कोशिश की, लेकिन इससे मदद नहीं मिली। साथ ही मैंने kotlin- प्लगइन के बारे में भी सुना है।