CREATE TABLE GUSERPRO
(
USER_NAME VARCHAR2(20 BYTE),
SYSTEM VARCHAR2(8 BYTE),
PROCESS VARCHAR2(8 BYTE),
LOGIN_TIME NUMBER,
LOGIN_DATE DATE,
LOGOUT_TIME NUMBER,
LOGOUT_DATE DATE,
TOTAL_ELAPSED NUMBER,
TOTAL_LOGINS NUMBER
)
TABLESPACE ERIP_D
PCTUSED 0
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 64K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
BUFFER_POOL DEFAULT
)
LOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL
MONITORING
ENABLE ROW MOVEMENT;
the exception stack references this constraint:
CREATE UNIQUE INDEX GUSERPRO_N1 ON GUSERPRO
(USER_NAME, SYSTEM, PROCESS)
LOGGING
TABLESPACE ERIP_D
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 64K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
BUFFER_POOL DEFAULT
)
NOPARALLEL;
while trying to update a record into the Oracle database I am getting this error, but not always , some scenarios I get this error. If I create a new record and then update it is working fine. If I try to update the existing record it is throwing this error. Please help me to get rid of this.
org.springframework.dao.DataIntegrityViolationException:
Could not execute JDBC batch update;
SQL [update PDOXDATA_GUSERPRO set PROCESS=?, SYSTEM=? where USER_NAME=?];
constraint [PDOXDATA_GUSERPRO_N1];
nested exception is org.hibernate.exception.ConstraintViolationException:
Could not execute JDBC batch update
<< rest of error stack >>
Here is the relevant class:
/**
*
*/
package com.lv.rs.accessautomation.common.vo;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
/**
* @author tp50148
*
*/
@Entity
@Table(name="PDOXDATA_GUSERPRO"/*,uniqueConstraints = {@UniqueConstraint(columnNames = "userName")}*/)
public class EripUserProVO implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@Column(name = "USER_NAME")
private String userName;
@Column(name = "SYSTEM")
private String system;
@Column(name = "PROCESS")
private String process;
@OneToMany(cascade = CascadeType.ALL,fetch = FetchType.LAZY,orphanRemoval = true)
@JoinColumn(name="USER_NAME")
private List<EripGtSignatVO> eripGtSignatVO = new ArrayList<EripGtSignatVO>();
@OneToMany(cascade = CascadeType.ALL,fetch = FetchType.LAZY,orphanRemoval = true)
@JoinColumn(name="USER_NAME")
private List<EripGUsersVO> eripGUsersVO = new ArrayList<EripGUsersVO>();
@OneToMany(cascade = CascadeType.ALL,fetch = FetchType.LAZY,orphanRemoval = true)
@JoinColumn(name="USERNAME")
private List<EripUserLocationVO> eripUserLocationVO = new ArrayList<EripUserLocationVO>();
@OneToMany(cascade = CascadeType.ALL,fetch = FetchType.LAZY,orphanRemoval = true)
@JoinColumn(name="USER_USER")
private List<Eripcpa95VO> eripcpa95VO = new ArrayList<Eripcpa95VO>();
@OneToMany(cascade = CascadeType.ALL,fetch = FetchType.LAZY,orphanRemoval = true)
@JoinColumn(name="USERNAME")
private List<EriporaSacUserVO> eriporaSacUserVO = new ArrayList<EriporaSacUserVO>();
@OneToMany(cascade = CascadeType.ALL,fetch = FetchType.LAZY,orphanRemoval = true)
@JoinColumn(name="SACUSER_USERNAME")
private List<EriporaSacAccessVO> eriporaSacAccessVO = new ArrayList<EriporaSacAccessVO>();
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getSystem() {
return system;
}
public void setSystem(String system) {
this.system = system;
}
public String getProcess() {
return process;
}
public void setProcess(String process) {
this.process = process;
}
public List<EripGtSignatVO> getEripGtSignatVO() {
return eripGtSignatVO;
}
public void setEripGtSignatVO(List<EripGtSignatVO> eripGtSignatVO) {
this.eripGtSignatVO = eripGtSignatVO;
}
public List<EripGUsersVO> getEripGUsersVO() {
return eripGUsersVO;
}
public void setEripGUsersVO(List<EripGUsersVO> eripGUsersVO) {
this.eripGUsersVO = eripGUsersVO;
}
public List<EripUserLocationVO> getEripUserLocationVO() {
return eripUserLocationVO;
}
public void setEripUserLocationVO(List<EripUserLocationVO> eripUserLocationVO) {
this.eripUserLocationVO = eripUserLocationVO;
}
public List<Eripcpa95VO> getEripcpa95VO() {
return eripcpa95VO;
}
public void setEripcpa95VO(List<Eripcpa95VO> eripcpa95vo) {
eripcpa95VO = eripcpa95vo;
}
public List<EriporaSacUserVO> getEriporaSacUserVO() {
return eriporaSacUserVO;
}
public void setEriporaSacUserVO(List<EriporaSacUserVO> eriporaSacUserVO) {
this.eriporaSacUserVO = eriporaSacUserVO;
}
public List<EriporaSacAccessVO> getEriporaSacAccessVO() {
return eriporaSacAccessVO;
}
public void setEriporaSacAccessVO(List<EriporaSacAccessVO> eriporaSacAccessVO) {
this.eriporaSacAccessVO = eriporaSacAccessVO;
}
}