我有一个有分数表的注册班。我试图引用Score类,但通过JDBC语句执行DDL“alter table Score add constraint…foreign key(registration_id)references registration(id)”时出错,原因是:java。sql。SQLException:无法打开引用的表“enrollment”。运行应用程序后,会在数据库中创建分数表,但缺少注册表,并且分数的注册id列不是外键。我怎样才能解决这个问题?我试图用@Cache注释,并忽略表的双重创建,但没有成功。我正在使用MySQL。
@Entity
@Table(name = "enrollment")
public class Enrollment {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public int id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "student_id")
public Student student;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "date", nullable = false)
public Date date;
@Column(name = "rank", nullable = false)
public int rank;
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "specialty_id", referencedColumnName = "id")
public Specialty specialty;
@Lob
@Basic(fetch = FetchType.LAZY)
@Column(name = "files", columnDefinition = "BLOB", nullable = false)
private byte[] files;
@OneToMany(mappedBy = "enrollment", fetch = FetchType.LAZY)
public List<Score> scores;
@Column(name = "state", length = 50, nullable = false)
public String state;
}
@Entity
@Table(name = "score")
public class Score {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "score_forming_object_id", referencedColumnName = "id")
private ScoreFormingObject scoreFormingObject;
@Column(name = "score", nullable = false)
private double score;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "enrollment_id")
private Enrollment enrollment;
}
https://stackoverflow.com/a/64316793/14644191@Rajib Garai的回答对我有用。我在application.properties中添加了spring.jpa.properties.hibernate.globally_quoted_identifiers=true,问题得到了解决。
检查您的注册实体类是否位于应用程序类的同一目录或子目录中。
我真的需要帮助,我在stackoverflow上找到的所有问题中都搜索到了,但没有任何效果。我以前从未使用过hibernate,我不知道自己做错了什么 这是我的存储库:https://github.com/ionutincau/test_db 我收到了这个错误:
我在使用以下方言创建表时遇到以下错误 “org.hibernate.dialoget.mysqlinoddDialogic”
问题内容: 我真的需要帮助,我在关于stackoverflow的所有问题中进行了搜索,但没有任何效果。我以前从未使用过hibernate模式,也不知道自己在做什么错。 这是我的存储库:https : //github.com/ionutincau/test_db 我收到此错误: 问题答案: 在您的CFG文件中,请更改hibernate方言
我正在做一个简单的Spring Boot项目,我试图从导入中加载一些数据。sql文件。表是从实体创建的,但数据没有加载,我在下面收到了这个错误。问题只针对MySQL,对于H2没有错误。 这是实体: 应用yml公司 import.sql 聚甲醛 我认为问题不在于方言,因为它创建了表,只有数据没有加载到表中。我正在使用org。冬眠地方话mysql8dialent,如果我更改dialent的值,它不会创
问题内容: 我是hibernate世界和面对的新手, 在hibernate5.2.9版本中运行独立程序时出现异常。但是在hibernate4版本中,我所有的代码都运行良好。我寻找了很多问题并解决了,但没有得到有效的答案。 配置文件 Pom.xml 实用文件 实体文件 主要方法 安慰 问题答案: 您应该尝试使用另一种方言,例如OR 或OR,以查看哪种方言适合您。 总而言之,您的当前方言正在creat