Hibernate "could not get next sequence value" oracle



我得到这个错误could not get next sequence value时,我试图保存这个实体与Hibernate:

package beans;
import javax.persistence.*;
@Entity
@Table(schema = "EVGENY")
public class Article {
    @SequenceGenerator(name="ArticleGen", sequenceName="ARTICLESEC")
    @Id
    @GeneratedValue(generator= "ArticleGen")
    private int id;
    @Column(name="title")
    private String title;
    @Column(name="text")
    private String text;
    @Column(name="postat")
    private String postat;
    @ManyToOne
    @JoinColumn(name = "USER_ID")
    private UserAcc user;
    public Article(){
    }
    Get Set...      
}
insert into article (title) values('asdfaf');

在Oracle SQL Developer这个insert into article (title) values('asdfaf');工作得很好。

如果我明确设置id变量(Article a = new Article();a.setId(3);)一切都很好。我仔细检查了序列的名称

检查序列上的用户权限。大多数情况下是grant issue

我知道得到这个异常的很多原因。也许你可以检查一下问题,并告诉我你的问题的更多细节:

  • 检查是否"休眠"。"方言"设置为Oracle?
  • 序列权限ok (schema, select等)?
  • 是否有一些触发表和抛出plsql错误?
  • 其他一些可能破坏插入的sql ?
  • 事务中断了吗?
  • 是否有一个异常(有时沉默)之前的某个地方创建(如陈旧的状态或跳出),使事务被标记为回滚?
  • 异常前是否有连接错误错误?
  • 是实体可能已经附加(检查包含)?
  • 您是否使用spring或其他可以添加异常解析器或翻译器的框架?
  • 您使用的是哪个版本的oracle数据库?10个还是11个?使用的驱动程序是否正确?
  • 在不返回任何值之前是否有findSingle调用?

最新更新