java - 批量插入中的 Postgres 错误 : relation "hibernate_sequence" does not exist position 17

标签 java hibernate postgresql jpa

我正在执行 hibernate jpa 批量更新,它给了我以下错误

2015-04-21 15:53:51,907 WARN  [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (Thread-283 (HornetQ-client-global-threads-462057890)) SQL Error: 0, SQLState: 42P01
2015-04-21 15:53:51,908 ERROR [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (Thread-283 (HornetQ-client-global-threads-462057890)) ERROR: relation "my_seq_gen" does not exist

我正在使用 postgres 数据库,我的 ID 是自动生成的

  @Id
@SequenceGenerator(name="seq-gen",sequenceName="MY_SEQ_GEN"initialValue=205, allocationSize=12)
@GeneratedValue(strategy= GenerationType.SEQUENCE, generator="seq-gen")
@Column(name="\"ID\"",unique=true,nullable=false)
private int id;

这是我的批量插入代码片段

getEm().getTransaction().begin();
System.out.println("transaction started--------------");
try {   
    for (Receipt ReceiptEntity : arrReceiptEntity) {
            getEm().persist(ReceiptEntity);
    }
    getEm().getTransaction().commit();
    System.out.println("commited");
} catch (Exception exception) {
    System.out.println("error----------------------------------------------------------------------");
    if(getEm().getTransaction().isActive())
        getEm().getTransaction().rollback();
    LOG.error(exception);
} finally {
    getEm().flush();
    getEm().clear();
    getEm().close();
}

我在persistence.xml中添加了以下属性

         <property name="hibernate.id.new_generator_mappings" value="true"/>

请指出我做错了什么。

最佳答案

尝试用 @Id@GeneratedValue(strategy = GenerationType.IDENTITY) 注释您的 id

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

更新:仅当您的 id 列被声明为 SERIALBIGSERIAL 类型时才有效。

关于java - 批量插入中的 Postgres 错误 : relation "hibernate_sequence" does not exist position 17,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29771730/

相关文章:

sql - 获取表中所有记录都具有空值的列的列表 - SQL

java - 我什么时候应该使用 `REQUIRED` 与 `NOT_SUPPORTED` 作为 MDB 的 @TransactionAttribute 值?

sql - 如何使用附加列选择最大日期

java - 安装 RPM 会导致任何问题吗?

java - Hibernate 4 : org. hibernate.HibernateException: 没有找到当前线程的 session

spring hibernate 和使用 ehcache 进行缓存

hibernate - 为什么 JPA 中 @SequenceGenerator 注释的默认 allocationSize 属性是 50?

postgresql - 如果两个进程同时修改两个事务中的数据,并且表存在唯一约束,会发生什么情况?

java - Java 库中的快速排序 3 路分区

java - 如何修复 while 语句以便仅从输入中获取数字?