Hibernate中的实体类中的非主键字段,能不能调用oracle的sequence来自动生成序号,然后自动插入数据库 例:这样写运行报错
@Column(name = "INDEXID", nullable = false)
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="S_RECOMMEND_indexID")
@SequenceGenerator(name="S_RECOMMEND_indexID",allocationSize=1,initialValue=1, sequenceName="S_RECOMMEND_indexID")
private Long indexID;例:这样写运行正确
@Column(name = "INDEXID", nullable = false)
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="S_RECOMMEND_indexID")
@SequenceGenerator(name="S_RECOMMEND_indexID",allocationSize=1,initialValue=1, sequenceName="S_RECOMMEND_indexID")
private Long indexID;
@Column(name = "INDEXID", nullable = false)
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="S_RECOMMEND_indexID")
@SequenceGenerator(name="S_RECOMMEND_indexID",allocationSize=1,initialValue=1, sequenceName="S_RECOMMEND_indexID")
private Long indexID;例:这样写运行正确
@Column(name = "INDEXID", nullable = false)
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="S_RECOMMEND_indexID")
@SequenceGenerator(name="S_RECOMMEND_indexID",allocationSize=1,initialValue=1, sequenceName="S_RECOMMEND_indexID")
private Long indexID;
在oracle里定义一个序列SEQ_UNIT
<class name="com.egf.pojos.Unit" table="UNIT" dynamic-insert="true" dynamic-update="true">
<id name="id" type="java.lang.Long">
<column name="ID" precision="22" scale="0" />
<generator class="sequence">
<param name="sequence">SEQ_UNIT</param>
</generator>
</id>
在配置文件里
<property name="indexid" formula="(select seq_index.nextval from dual)"/>