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

时间:2019-03-03 21:18:51

标签: hibernate spring-boot jpa-2.0

实际上我正在编写一个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);

1 个答案:

答案 0 :(得分:0)

评论配置条目可能不是一个好主意,根据documentation,在没有配置条目时可以将其自动设置为create-drop,我建议您将其更改为{{1}避免任何麻烦。

  

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