为什么不能在jpa中保存对象

问题描述 投票:0回答:1

实际上我正在写一个api只用于从表中获取数据所以我不需要创建表但我需要记录每次调用db .i只是注释了属性文件中的spring.jpa.hibernate.ddl-auto = update避免在启动时创建表。在评论jpa自动创建代码后,我面临着保存对象的问题(id为0时的情况)。

的POJO

@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);
hibernate spring-boot jpa-2.0
1个回答
0
投票

评论该配置条目可能不是一个好主意,因为根据documentation,它可以自动设置为create-drop,我建议你将其更改为none以避免任何麻烦。

您可以显式设置spring.jpa.hibernate.ddl-auto,标准Hibernate属性值为none,validate,update,create和create-drop。 Spring Boot会根据是否认为您的数据库是嵌入式的,为您选择一个默认值。如果未检测到架构管理器,则默认为create-drop,在所有其他情况下,默认为none。通过查看连接类型来检测嵌入式数据库。 hsqldb,h2和derby是嵌入的,而其他则不是。从内存切换到“真实”数据库时要小心,不要假设新平台中存在表和数据。您必须显式设置ddl-auto或使用其他机制之一来初始化数据库。

© www.soinside.com 2019 - 2024. All rights reserved.