实际上我正在编写一个api,仅用于从表中获取数据,所以我不需要创建表,但是我需要记录对db的每次调用。我只是评论了spring.jpa.hibernate.ddl-auto =更新在属性文件中,以避免在启动时创建表。在注释了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);
答案 0 :(得分:0)
评论配置条目可能不是一个好主意,根据documentation,在没有配置条目时可以将其自动设置为create-drop
,我建议您将其更改为{{1}避免任何麻烦。
您可以显式设置 spring.jpa.hibernate.ddl-auto 和标准 休眠属性值是 none , validate , update , create 和 创建拖放。 Spring Boot根据以下内容为您选择一个默认值 是否认为您的数据库是嵌入式的。默认为 如果未检测到模式管理器或全部未检测到模式管理器,则创建 其他情况。通过查看 连接类型。嵌入了hsqldb,h2和derby,其他是 不。从内存数据库切换到“真实”数据库时要小心 您不对表的存在做出假设,并且 新平台中的数据。您要么必须显式设置ddl-auto 或使用其他机制之一来初始化数据库。