hibernate - JPA 在哪里生成序列名称?
问题描述
遇到了一个奇怪的问题。我正在使用 JPA + spring 来处理我的实体。数据保存在 Postgresql 中。表由 JPA 生成。我没有创造任何一个。
实体“家庭”之一具有 ID 字段。
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="family_id",nullable = false, columnDefinition = "BIGINT")
private Long id;
因此,JPA(或休眠)生成一个具有序列“family_id_seq”的列。插入新条目时,它将查询 currval('family_id_seq')。一切都按预期工作。
今天当我调试我的程序时。突然我无法使用 JpaRepository 保存任何“家庭”。错误消息是 currval('family_family_id_seq') 不存在。
为什么我的 JPA 更改了生成的 seq 名称?我该如何控制?哪个 Spring JPA 类负责创建此查询?我希望我的序列名为“family_id_seq”。因为其他表的 seq 仍然遵循该规则。
解决方案
推荐阅读
- python - Python中的while循环和范围数
- javascript - 是否存在向 GridFS 提交 HTML 文件表单的 JS 等效性?
- css - 当用户单击输入时防止菜单关闭
- ruby-on-rails - 在 Asset Pipeline Rails 中包含节点模块图像
- nix - value 是一个函数,而在评估“输出”时需要一个集合
- mongodb - 如何让 mongod 默认从 /bin/mongod.cfg 加载配置?
- mysql - MySQL 触发器与 If 循环和信号
- c++ - 使用自定义反射将对象序列化为 JSON
- javascript - 如何访问映射 json 数组并通过 id 搜索对象并更改该对象中的值
- vba - Excel在匹配单元格时返回整行