https://kotlinlang.org logo
#spring
Title
# spring
m

MArtin

01/09/2023, 6:42 PM
Failed to initialize JPA EntityManagerFactory: Could not determine recommended JdbcType for `ar.com.school.management.models.entity.Subject` Hello everyone, I'm new with Kotlin and I'm trying to use it to make an app with Spring boot.I have just done the entities and anything else yet because I want to know if the app runs but I tried running it and it gives me the following exception "Failed to initialize JPA EntityManagerFactory: Could not determine recommended JdbcType for ar.com.school.management.models.entity.Subject"
Copy code
package ar.com.school.management.models.entity

import com.fasterxml.jackson.annotation.JsonIgnoreProperties
import jakarta.persistence.*
@Entity
data class Career(@Id
              @GeneratedValue(strategy = 
              GenerationType.IDENTITY)
              @Column(name = "career_id")
              var id: Long?,

              var name: String?,

              @ManyToMany(cascade = [CascadeType.ALL], fetch = FetchType.LAZY)
              @JoinTable(name = "career_subject",
                  joinColumns = [JoinColumn(name = "career_id", referencedColumnName = "career_id")],
                  inverseJoinColumns = [JoinColumn(name = "subject_id", referencedColumnName = "subject_id")])
              @JsonIgnoreProperties("subjectCareers")
              var subjects: List<Subject>? = mutableListOf(),

              @OneToMany(mappedBy = "career")
              var students: List<Student>? = mutableListOf(),

              @ManyToMany(cascade = [CascadeType.ALL], fetch = FetchType.LAZY)
              @JoinTable(name = "career_teacher",
                  joinColumns = [JoinColumn(name = "career_id", referencedColumnName = "career_id")],
                  inverseJoinColumns = [JoinColumn(name = "teacher_id", referencedColumnName = "teacher_id")])
              @JsonIgnoreProperties("careers")
              var teachers: List<Teacher>? = mutableListOf()) {
constructor(): this(null,null,null, null, null)
}
Copy code
package ar.com.school.management.models.entity

import com.fasterxml.jackson.annotation.JsonIgnoreProperties
import jakarta.persistence.*

@Entity
data class Student(@Id
                   @GeneratedValue(strategy = GenerationType.IDENTITY)
                   @Column(name = "student_id")
                   var id: Long?,

                   @Column(name = "social_security_number")
                   val socialSecurityNumber: Int?,

                   var name: String?,
                   var surname: String?,
                   var address: String? ,
                   var age: Int?,

                   @ManyToOne
                   @JoinColumn(name = "career_id")
                   var career: Career?,

                   @ManyToMany(mappedBy = "students")
                   @JsonIgnoreProperties("students")
                   var subjects: List<Subject>? = mutableListOf(),

                   @Column(name = "finished_subjects")
                   var finishedSubjects: List<Subject>? = mutableListOf(),

                   @Column(name = "subjects_marks")
                   var subjectsMarks: Map<Subject, Double>? = mutableMapOf()) {
    constructor(): this(null,null,null,null,null,
        null,null, null,null,null)
}
Copy code
package ar.com.school.management.models.entity

import com.fasterxml.jackson.annotation.JsonIgnoreProperties
import jakarta.persistence.*

@Entity
data class Subject(@Id
                   @GeneratedValue(strategy = GenerationType.IDENTITY)
                   @Column(name = "subject_id")
                   var id: Long?,

                   var name: String?,

                   @ManyToMany(cascade = [CascadeType.ALL], fetch = FetchType.LAZY)
                   @JoinTable(name = "subject_student",
                       joinColumns = [JoinColumn(name = "subject_id", referencedColumnName = "subject_id")],
                       inverseJoinColumns = [JoinColumn(name = "student_id", referencedColumnName = "student_id")])
                   @JsonIgnoreProperties("subjects")
                   var students: List<Student>? = mutableListOf(),

                   @ManyToMany(mappedBy = "subjects")
                   @JsonIgnoreProperties("subjects")
                   @Column(name = "careers")
                   var subjectCareers: List<Career>? = mutableListOf(),

                   @ManyToMany(cascade = [CascadeType.ALL], fetch = FetchType.LAZY)
                   @JoinTable(name = "subject_teacher",
                       joinColumns = [JoinColumn(name = "subject_id", referencedColumnName = "subject_id")],
                       inverseJoinColumns = [JoinColumn(name = "teacher_id", referencedColumnName = "teacher_id")])
                   @JsonIgnoreProperties("subjects")
                   var subjectTeachers: List<Teacher>? = mutableListOf(),

                   @Column(name = "correlative_subjects")
                   @ElementCollection
                   var correlativeSubjects: List<String>? = mutableListOf()) {
    constructor(): this(null, null, null, null, null, null)
}
Copy code
package ar.com.school.management.models.entity

import com.fasterxml.jackson.annotation.JsonIgnoreProperties
import jakarta.persistence.*

@Entity
data class Teacher(@Id
                   @GeneratedValue(strategy = GenerationType.IDENTITY)
                   @Column(name = "teacher_id")
                   var id: Long?,

                   @Column(name = "social_security_number")
                   val socialSecurityNumber: Int?,

                   var name: String?,
                   var surname: String?,
                   var address: String? ,
                   var age: Int?,

                   @ManyToMany(mappedBy = "subjectTeachers")
                   @JsonIgnoreProperties("subjectTeachers")
                   var subjects: List<Subject>? = mutableListOf(),

                   @ManyToMany(mappedBy = "teachers")
                   @JsonIgnoreProperties("teachers")
                   var careers: List<Career>? = mutableListOf())             {

    constructor(): this(null,null,null,null,null,null,null, null)
}
1354 Views