我们需要重新设计一个应用程序,但不对数据库进行任何修改。
当前代码使用普通的jdbc查询数据。作为重新设计的一部分,我们计划实现休眠模式。
问题是当前数据库在数据库级别没有任何约束。
例如,如果有两个实体,课程和评论。当前数据库之间没有任何映射。
现在在这种情况下,如果我实现了休眠模式,并尝试在课程和复习之间使用@OneToMany,而数据库中没有这些约束,那行得通吗?
答案 0 :(得分:0)
1要阻止休眠模式更改方案设置参数
spring.jpa.hibernate.ddl-auto =无
81.2 Initialize a Database Using Hibernate
2设置GeneratedValue策略以使用现有序列
@SequenceGenerator(name="my_seq", sequenceName="my_seq", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "my_seq")
private Long id;
这样,Hibernate将不会更改您的架构中的任何内容。它不会创建任何序列,表,外键,约束等只需使用现有结构,如果出现问题,就掉下来)
答案 1 :(得分:0)
如果从Course
到Review
之间没有级联,而您删除了Course
,则删除将毫无疑问地进行。在存在约束的情况下,DB会抱怨现有的子记录(在本例中为审阅)。
因此需要特别注意级联的确定。