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- प्लगइन के बारे में भी सुना है