ConstraintViolationException pour une cle primaire composite
Bonjour,
je travaille sur une application utilisant JPA et oracle. J'ai une classe avec une cle primaire composite
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
@Entity
@Table(schema = "ACCOUNT", name = "RLOGTRACE", uniqueConstraints = @UniqueConstraint(columnNames = {"LOG_DT", "LOG_USER_ID", "LOG_TYPE"}))
public class RLogtrace implements java.io.Serializable {
private RLogtraceId id;
@EmbeddedId
public RLogtraceId getId() {
return this.id;
}
............
.............
............ |
et
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
@Embeddable
public class RLogtraceId implements java.io.Serializable {
private Date logDt;
private String logUserId;
private Character logType;
public RLogtraceId() {
}
public RLogtraceId(Date logDt, String logUserId, Character logType) {
this.logDt = logDt;
this.logUserId = logUserId;
this.logType = logType;
}
@Column(name = "LOG_DT")
@Temporal(TemporalType.TIMESTAMP)
public Date getLogDt() {
return this.logDt;
}
public void setLogDt(Date logDt) {
this.logDt = logDt;
}
@Column(name = "LOG_USER_ID", length = 30)
public String getLogUserId() {
return this.logUserId;
}
public void setLogUserId(String logUserId) {
this.logUserId = logUserId;
}
@Column(name = "LOG_TYPE", length = 1)
public Character getLogType() {
return this.logType;
}
..........
} |
avec la table RLOGTRACE suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
CREATE TABLE "ACCOUNT"."RLOGTRACE"
(
"LOG_DT" DATE,
"LOG_USER_ID" VARCHAR2(30 BYTE),
"LOG_TYPE" CHAR(1 BYTE),
.....................
.....................
)
TABLESPACE "ACCOUNT" ;
COMMENT ON COLUMN "ACCOUNT"."R_LOGTRACE"."LOG_DT"
IS
'Date and time of the logged event.';
COMMENT ON COLUMN "ACCOUNT"."R_LOGTRACE"."LOG_USER_ID"
IS
'Related user login.';
COMMENT ON COLUMN "ACCOUNT"."R_LOGTRACE"."LOG_TYPE"
IS
'TYPE OF event logged:
- I FOR login event,
- O FOR logout event,
CREATE UNIQUE INDEX "ACCOUNT"."PK_R_LOGTRACE" ON "ACCOUNT"."R_LOGTRACE"
(
"LOG_DT", "LOG_USER_ID", "LOG_TYPE"
) |
Quand j'essaye de créer un objet RLogtrace dans la base, j'ai l'erreur suivante :
Code:
1 2 3 4 5 6
|
JDBCExceptionReporter [ERROR] ORA-00001: unique constraint (ACCOUNT.PK_R_LOGTRACE) violated
2010-08-19 14:39:49 AbstractFlushingEventListener [ERROR] Could not synchronize database state with session
org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71) |
Je ne vois pas où est l'erreur. Merci pour votre aide