我的项目意图是允许用户参加测试并回答每个选择题。我假设最好的想法是在User对象模型类中创建一个HashMap。我希望Key成为一个Question对象,并且Value可以是多选答案的Integer,也可以是" Answer"对象
这个问题很独特,因为我想知道如何使用Hibernate将HashMap正确地映射到数据库中。这个HashMap特别使用两个不同的对象作为Key和Value。我没有将此问题映射到数组列表,但是我使用Hashmaps,我认为它与我为注释命名的方式有关?
将数据保存到数据库时,我得到:
"无法执行声明;嵌套异常是org.hibernate.exception.GenericJDBCException:无法执行语句]的根本原因java.sql.SQLException:Field' question1_id'没有默认值"
package com.example.scrennerMVC.models;
import javax.persistence.*;
import java.util.Map;
@Entity
public class User1 {
@Id
@GeneratedValue
private long id;
private String email;
@OneToMany(mappedBy="user")
@MapKeyJoinColumn(name="QUESTION1_ID")
private Map<Question1, Answer> answer;
}
@Entity
public class Question1 {
@Id
@GeneratedValue
private long id;
@Basic
private String question;
}
@Entity
public class Answer {
@Id
@GeneratedValue
private long id;
@ManyToOne
private User user;
private int answer;
}