表:
序号 字段中文名称 字段名称 类型 长度 是否为空 主键
1 油费ID YFID number (10) not null, PK
2 车牌号码 CPHM varchar2 (30) ,
3 加油时间 JYSJ date not null,
4 油卡号码 YKHM varchar2 (60) ,
5 加油次数 JYCS number (5) ,
6 加油数量 JYSL number (8,2) ,
7 加油金额 JYJE number (11,2) ); xml:
<class name="com.dhc.dao.entity.TYfb" table="T_YFB">
<id name="yfid" type="java.lang.Long">
<column name="YFID" precision="10" scale="0" />
<generator class="sequence" >
<param name="sequence">SU_YFID</param>
</generator>
</id>
<property name="ykhm" type="java.lang.String">
<column name="YKHM" length="15" />
</property>
<property name="jycs" type="java.lang.Integer">
<column name="JYCS" precision="2" scale="0" />
</property>
<property name="jysl" type="java.lang.Double">
<column name="JYSL" precision="8" />
</property>
<property name="jyje" type="java.lang.Double">
<column name="JYJE" precision="10" />
</property>
<property name="jysj" type="java.util.Date">
<column name="JYSJ" length="7" not-null="true" />
</property>
<many-to-one name="tclxxb" class="com.dhc.dao.entity.TClxxb">
<column name="CPHM" length="10" sql-type="VARCHAR2" />
</many-to-one>
</class>实体java:
private Long yfid; private String ykhm; private int jycs; private Double jysl; private Double jyje; private Date jysj;
private TClxxb tclxxb;.........get().........set()调用方法:this.oilFareDao.saveOilEntity(tyfbEntity);//tyfbEntity这里面除了yfid都有设值每次执行到这里都报错:2010-07-15 13:59:44,515 ERROR [org.hibernate.util.JDBCExceptionReporter] - ORA-00001: 违反唯一约束条件 (VMSUSER.PK_ID)2010-07-15 13:59:44,515 ERROR [org.hibernate.util.JDBCExceptionReporter] - ORA-00001: 违反唯一约束条件 (VMSUSER.PK_ID)
序号 字段中文名称 字段名称 类型 长度 是否为空 主键
1 油费ID YFID number (10) not null, PK
2 车牌号码 CPHM varchar2 (30) ,
3 加油时间 JYSJ date not null,
4 油卡号码 YKHM varchar2 (60) ,
5 加油次数 JYCS number (5) ,
6 加油数量 JYSL number (8,2) ,
7 加油金额 JYJE number (11,2) ); xml:
<class name="com.dhc.dao.entity.TYfb" table="T_YFB">
<id name="yfid" type="java.lang.Long">
<column name="YFID" precision="10" scale="0" />
<generator class="sequence" >
<param name="sequence">SU_YFID</param>
</generator>
</id>
<property name="ykhm" type="java.lang.String">
<column name="YKHM" length="15" />
</property>
<property name="jycs" type="java.lang.Integer">
<column name="JYCS" precision="2" scale="0" />
</property>
<property name="jysl" type="java.lang.Double">
<column name="JYSL" precision="8" />
</property>
<property name="jyje" type="java.lang.Double">
<column name="JYJE" precision="10" />
</property>
<property name="jysj" type="java.util.Date">
<column name="JYSJ" length="7" not-null="true" />
</property>
<many-to-one name="tclxxb" class="com.dhc.dao.entity.TClxxb">
<column name="CPHM" length="10" sql-type="VARCHAR2" />
</many-to-one>
</class>实体java:
private Long yfid; private String ykhm; private int jycs; private Double jysl; private Double jyje; private Date jysj;
private TClxxb tclxxb;.........get().........set()调用方法:this.oilFareDao.saveOilEntity(tyfbEntity);//tyfbEntity这里面除了yfid都有设值每次执行到这里都报错:2010-07-15 13:59:44,515 ERROR [org.hibernate.util.JDBCExceptionReporter] - ORA-00001: 违反唯一约束条件 (VMSUSER.PK_ID)2010-07-15 13:59:44,515 ERROR [org.hibernate.util.JDBCExceptionReporter] - ORA-00001: 违反唯一约束条件 (VMSUSER.PK_ID)
<param name="sequence">SU_YFID</param>
这个地方错了我重新换个序列号,
CREATE SEQUENCE emp_sequence INCREMENT BY 1 START WITH 1 NOMAXVALUE NOCYCLE
把配置文件改成:
<param name="sequence">emp_sequence</param>
就ok了现在的问题是,我是修改原有的项目,里面已经有很多数据了。
怎么查看并修改原来的序列号,已解决这个问题
select sequence_name,min_value,max_value,increment_by,last_number from user_sequences
结果如下:
sequence_name min_value max_value increment_by last_number
SU_YFID 1 10000000 1 381------------------------------------
最大的一条记录才381啊,远小于10000000。真是奇怪了
是用的SU_YFID,数据也是只到381
我说的是,怎么自动增长的序列,我在保存数据的时候,都会出现重复值(我换成emp_sequence后就可以加入数据,不报违反唯一约束条件错误)
<column name="CPHM" length="10" sql-type="VARCHAR2" />
</many-to-one>
定义了一个多对一的关系,如果基于"CPHM"建立的索引不可重复,在事务执行到向"tclxxb"插入的时候就会出现 违反唯一约束条件 。
<column name="CPHM" length="10" sql-type="VARCHAR2" />
</many-to-one>
定义了一个多对一的关系,如果基于"CPHM"建立的索引不可重复,在事务执行到向"tclxxb"插入的时候就会出现 违反唯一约束条件 。