我有以下实体(中省略getter和setter)...甲骨文和Hibernate,DB序列发生器发出
@Entity
@Table(name = "TBL_PROJECT_RUN")
public class ProjectRunEntity {
@Id
@Column(name = "ID")
@GeneratedValue(generator = "StakeholdersSequence")
@SequenceGenerator(name = "StakeholdersSequence", sequenceName = "STAKEHOLDERS_UPDATE_SEQ", allocationSize = 1)
private Integer id;
@Column(name = "REPORT_RUN_DATE")
private Date systemRunDate;
@Column(name = "JIRA_PROJECT_NAME")
private String jiraProjectName;
@Column(name = "JIRA_PROJECT_DESC")
private String jiraProjectDescription;
@Column(name = "RUNBY")
private String runBy;
@Column(name = "HEADER_TEXT")
private String headerText;
@Column(name = "FOOTER_TEXT")
private String footerText;
@Column(name = "JIRA_ID")
private String jiraId;
@Column(name = "TO_EMAIL")
private String toEmail;
@Column(name = "CC_EMAIL")
private String ccEmail;
@OneToMany(fetch = FetchType.EAGER, mappedBy = "projectRunEntity")
private List<ProjectRunDetailsEntity> projectRunDetailsEntities;
然后我提交到这样的数据库...
final Session session = sessionProvider.get();
session.persist(projectRunEntity);
session.flush();
return projectRunEntity.getId();
这里返回的id不是数据库中的实际id,它是1或2 off。请注意我为我的项目中的所有表中的所有ID共享一个序列,以便任何给定的实体都具有项目范围的唯一索引。什么会导致这样的id不正确?
*这里返回的id不是数据库中实际的id是什么* - 你的意思是在表中还是'currval'? – 2010-06-23 21:28:54