实际上,我正在编写一个 api 仅用于从表中获取数据,因此我不需要创建表,但我需要记录对 db 的每次调用。我只是在属性文件中评论了 spring.jpa.hibernate.ddl-auto = update避免在启动时创建表。在评论 jpa 自动创建代码后,我面临保存对象的问题(id 为 0 的情况)。
pojos
@Entity
@Table(name = "blabla")
public class ABCD{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
private String name;
private int xxx;
private Date yyyy;
//
//
}
保存代码
model obj = new model(xx, yyy, zzz);
repository.save(obj);
评论该配置条目可能不是一个好主意,根据文档,如果没有它可以自动设置为create-drop
,我建议您更改它none
以避免任何麻烦。
您可以显式设置spring.jpa.hibernate.ddl-auto并且标准的 Hibernate 属性值为none、validate、update、create和create-drop. Spring Boot 会根据它是否认为您的数据库已嵌入来为您选择一个默认值。如果没有检测到模式管理器或在所有其他情况下没有检测到模式管理器,则默认为 create-drop。通过查看连接类型来检测嵌入式数据库。嵌入了 hsqldb、h2 和 derby,而其他则没有。从内存中切换到“真实”数据库时要小心,不要假设新平台中表和数据的存在。您必须显式设置 ddl-auto 或使用其他机制之一来初始化数据库。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句