我是Postgres数据库的新手。
我有一个Java Entity类,其ID为以下列:
@Entity
@Table(name = "THE_RULES")
public class TheRulesEntity {
/** The id. */
@Column(name = "TEST_NO", precision = 8)
@SequenceGenerator(name = "test_no_seq", sequenceName = "TEST_NO_SEQ")
@GeneratedValue(generator = "test_no_seq", strategy = GenerationType.AUTO)
@Id
private Long id;
/** The test val. */
@Column(name = "TEST_VAL", nullable = false, length = 3)
private String testVal;
代码:
rulesRepository.saveAndFlush(theRulesEntity)
表:
CREATE TABLE THE_RULES
(
TEST_NO INT NOT NULL,
TEST_VAL VARCHAR(3) NOT NULL
)
CREATE SEQUENCE "TEST_NO_SEQ" START WITH 1000 INCREMENT BY 1;
当我尝试从我的应用程序向postgres数据库插入一条新记录时(在调试模式下,Java代码中的ID值为null),我得到以下错误:
Caused by: org.postgresql.util.PSQLException: ERROR: relation "dual" does not exist
但是如果我手动将记录插入数据库表然后从我的应用程序更新记录,那么记录会成功更新(可能是因为应用程序使用相同的ID值,所以不再需要引用Sequence TEST_NO_SEQ值)
看起来数据库无法从双表访问序列。 任何人都可以帮我解决这个问题吗?
感谢。
答案 0 :(得分:2)
感谢Joop和a_horse_with_no_name,问题已解决