【发布时间】:2022-01-04 07:05:30
【问题描述】:
我有一个包含多个数据的枚举类,我想存储它 枚举数据作为数据库中的列表。例如它包含的 Developer 表 技术列,该列存储枚举数据,假设一个用户想要 存储 Developer1 从事许多技术,如 java 、 Kotllin 、 .Net等这些技术属于枚举类,如何存储 . 与我有一个包含多个主题名称的主题枚举类相同 ,当我注册一位新老师时,我想存储多少科目 老师知道,如果他知道我们枚举中存在的多个科目 班级列表然后存储老师知道的科目ID。但是我 无法在 subjectId 的单个列中存储多个数据,它 在 SubjectId 列中只存储一个数据,如果我传入多个数据 postman 中的 subjectId 列会引发错误 400 教师实体类
package com.nilmani.jpqlprojectexample.entity
import com.nilmani.jpqlprojectexample.enum.Subject
import com.nilmani.jpqlprojectexample.enum.University
import java.util.*
import javax.persistence.Entity
import javax.persistence.GeneratedValue
import javax.persistence.GenerationType
import javax.persistence.Id
@Entity
data class Teacher(
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
val id:Long=-1,
val nameOfTeacher:String="",
val price:Long=-1,
val subject:Int = Subject.MATH.type,//List<Int> = listOf(Subject.MATH.type)
val university:Int=University.OTHER.type
)
主题枚举类
package com.nilmani.jpqlprojectexample.enum
enum class Subject(val type:Int) {
MATH(1),
PHYSIC(2),
ACCOUNTING(3),
ZOOLOGY(4),
BIOLOGY(5),
PROGRAMMING(6),
STATICS(7),
CHEMISTRY(8),
HISTORY(9)
}
ReqTeacher 模型类
package com.nilmani.jpqlprojectexample.model.request
import com.nilmani.jpqlprojectexample.enum.Subject import com.nilmani.jpqlprojectexample.enum.University
data class ReqTeacher(
val nameOfTeacher:String="",
val price:Long=-1,
val subject:Int= Subject.MATH.type,
val university:Int= University.OTHER.type, )
响应教师示范课
package com.nilmani.jpqlprojectexample.model.response
import com.nilmani.jpqlprojectexample.enum.Subject
import com.nilmani.jpqlprojectexample.enum.University
data class ResTeacher(
val nameOfTeacher:String="",
val price:Long=-1,
val subject:Int= Subject.MATH.type,
val university:Int= University.OTHER.type,
)
教师控制器类
package com.nilmani.jpqlprojectexample.controller
import com.nilmani.jpqlprojectexample.entity.Teacher
import com.nilmani.jpqlprojectexample.model.request.ReqTeacher
import com.nilmani.jpqlprojectexample.model.response.ResTeacher
import com.nilmani.jpqlprojectexample.repository.TeacherRepository
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.http.HttpStatus
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.*
@RestController
@RequestMapping("/teachTest")
class TeacherController {
@Autowired
private lateinit var teachRopo:TeacherRepository
@PostMapping("/add")
fun addTeacher(@ModelAttribute request:ReqTeacher):ResponseEntity<*>{
// val newTeacher = teachRopo.findById(request.)
var newTeacher = Teacher(
nameOfTeacher = request.nameOfTeacher,
price = request.price,
subject = request.subject,
university = request.university,
)
val saveTeacher = teachRopo.save(newTeacher)
val respTeacher = ResTeacher(
saveTeacher.nameOfTeacher,
saveTeacher.price,
saveTeacher.subject,
saveTeacher.university
)
return ResponseEntity(respTeacher,HttpStatus.OK)
}
}
我想在一个对象的 SubjectId 列中存储多个数据或单个数据 特定的teacherId,但我的代码只存储一个特定的数据 教师编号
【问题讨论】:
标签: spring-boot kotlin spring-data-jpa