mysql> alter table metakey add constraint Name unique(name);
mysql> desc metakey;
+-------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------------------+------+-----+---------+----------------+
| id | bigint(20) unsigned | NO | PRI | NULL | auto_increment |
| name | varchar(45) | NO | UNI | | |
+-------+---------------------+------+-----+---------+----------------+
@Entity
@Table(name = "metakey",uniqueConstraints={@UniqueConstraint(name="Name",columnNames={"name"})})
@Cache(usage=CacheConcurrencyStrategy.READ_WRITE)
public class MetaKey implements Serializable{
@Id @Column @GeneratedValue private Long id;
@Column private String name;
}
sess.save(obj);
..
}catch(ConstraintViolationException cve){
log.error(cve.getMessage());
log.info("Constraint name:"+cve.getConstraintName());
}
내가 이러한 로그에 얻을 - cve.getConstraintName을()는 제약 조건 이름을 찾을 수있는 방법이최대 절전 모드 ConstraintViolationException getConstraintName
org.hibernate.util.JDBCExceptionReporter - SQL Error: 1062, SQLState: 23000
org.hibernate.util.JDBCExceptionReporter - Duplicate entry 'Unit' for key 'Name'
could not insert: [com.comp.MetaKey]
Constraint name:null
거기에 null을 반환?
서버 버전 : 5.1.56 최대 절전 모드 버전 : 3.6
동일한 문제가 있습니다. – dmonti