userName 속성 unique 하게 설정한 것이 적용되지 않는다면 DB 를 한번 날리고 다시 생성하면 제대로 적용됨.
jpa:
open-in-view: true
hibernate:
ddl-auto: create
naming:
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
use-new-id-generator-mappings: false
show-sql: true
database: mysql
database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
properties:
hibernate.format_sql: true
이렇게 하면 서버를 재부팅할 때마다 테이블을 drop
하고 다시 생성하게 된다.
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id; // 오라클: 시퀀스, MySQL: auto_increment 전략
@Column(nullable = false, length = 30, unique = true)
private String userName; // 아이디
...
unique = true 설정이 적용되지 않았던이유는, 자바 애플리케이션에서 model은 설정이 되었는데 DB 테이블에 속성 적용이 되지 않아서 똑같은 유저네임이 DB에 들어가도 에러가 발생하지 않는 현상이 일어났던 것임.