我得到这个错误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调用?