当前位置: 首页 > 知识库问答 >
问题:

ID的Postgresql和Spring Roo绑定序列类型

鄢翰藻
2023-03-14

我在Spring Roo中使用Postgresql串行类型时遇到问题。我想要的是有一个自动递增的id列,它将与Roo中自动生成的实体类一起使用。

Postgresql序列是使用Spring Roo中默认的做事方式生成的,在spring应用程序中工作正常。但有时我必须使用sql手动插入数据库中的行。(当我执行 INSERT INTO 时,序列似乎无法正常工作...语句)。如果我可以使用串行类型,那么手动插入很容易。

例如,我有一个办公室实体和员工实体。员工和办公室之间存在多对一的关系。

下面是我的 Office 实体类。

@RooJavaBean
@RooToString
@RooJpaActiveRecord
public class Office {

    @Id
    @Column(name="officeid", columnDefinition = "serial")
    @Generated(GenerationTime.INSERT)
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long officeid;


    /**
    * Office Name
    */
    @NotNull
    @Size(max = 100)
    private String name;
}

虽然这在我的测试插入office记录时可以工作,但在插入employee记录时会失败,因为officeid外键值为null。(我猜它需要在office insert和employee insert之间刷新,但是自动生成测试似乎不能做到这一点。)

那么,使用什么正确的注释来告诉Roo(和hibernate/jpa)使用串行数据类型,以及正确处理spring应用程序中的插入和关系?

共有1个答案

翁良弼
2023-03-14

Roo生成默认的JPA注释,您必须根据需要自定义和设置它们。注意,Roo保证您的更改不会被修改。

 类似资料:
  • 我想使用PostgreSQL表作为文档的工作队列。每个文档都有一个 ID,并存储在另一个包含大量附加列的普通表中。但这个问题是关于为工作队列创建表的。 我想为这个队列创建一个没有oid的表,只有一列:整数形式的文档ID。如果一个文档的ID存在于这个工作队列表中,这意味着具有该ID的文档是脏的,必须进行一些处理。额外的表应避免真空和死元组问题以及事务死锁,如果主文档表中的每个文档条目上只有一个脏位,

  • 问题内容: 我使用TablePlus(SQL客户端)将Postgres SQL文件导入到服务器,但是在插入新行后出现如下错误: SQLSTATE [23505]:唯一冲突:7错误:重复的键值违反了唯一约束\“ users_pkey \”详细信息:密钥(id)=(1)已存在 我知道它是由序列值0引起的,需要通过以下代码进行更新: 但是,如果我必须一一写入所有表序列(可能是数百个序列),则需要花费大量

  • 我导入PostgresSQL文件到我的服务器使用TablePlus(SQL客户端),但我插入新行后,我得到了这样的错误: SQLSTATE[23505]:唯一冲突:7错误:重复键值违反唯一约束\“users\u pkey\”详细信息:键(id)=(1)已存在 我知道它是由序列值为0引起的,需要通过下面的代码进行更新: 但是如果我必须一个接一个地写所有的表序列(可能是数百个序列),那就需要很多时间。

  • 我有例外: 组织。postgresql。util。PSQLException:错误:运算符不存在:uuid=bytea 提示:没有与给定名称和参数类型匹配的运算符。您可能需要添加显式类型转换。 我有JPA实体 Id类 此外,转换器: 看起来,转换器根本不工作(我在转换器方法中设置了断点,但什么也没发生,调试器并没有进入那个里)。

  • 我正在测试一个删除主键列id的迁移(我希望使用外键作为主键)。当我运行并恢复迁移时,我看到表的状态是相同的,只是id列现在是最后一个。 它会以任何方式改变我的数据库的行为吗?我应该在迁移还原代码中恢复列顺序吗?

  • 我试图使用Spring Roo和GWT部署一个应用程序。我在GWT和Roo都是初学者,是按照本教程开始的,但是似乎有一个问题,因为示例应用程序不能在mvn:gwt run中启动。以上maven命令的结果: 我尝试过使用标准的eclipse和STS,但是运气不好,我能找到的所有教程都是关于roo 1.1.1的。所以我的问题是GWT是否与Roo兼容,如果兼容,是否有可用的示例代码教程?有人能帮我吗?