2012-02-10 2 views
1

웹 응용 프로그램에 mySQL과 함께 playframwork를 사용하고 있습니다. 다중 열에 unique_constraint가 필요한 테이블이 있습니다.Play Framework [1.2.4] : 엔티티의 고유 제한 사항

제가

package models; 

import java.util.Date; 

import javax.persistence.Entity; 
import javax.persistence.JoinColumn; 
import javax.persistence.ManyToOne; 
import javax.persistence.Table; 
import javax.persistence.UniqueConstraint; 

@Entity 
@Table(name = "table", 
        uniqueConstraints = { @UniqueConstraint(columnNames = 
                  { "col_1", "col_2" }) }) 
public class Table extends Model{ 

    @ManyToOne 
    @JoinColumn(name = "col_1") 
     public Column1 col1; 

     @ManyToOne 
    @JoinColumn(name = "col_2") 
     public Column2 col2; 

     @ManyToOne 
    @JoinColumn(name = "col_3") 
     public Column3 col_3; 

} 

는 열 1 및 열 2는 표 엔터티와의 관계와 다른 엔티티 ... 다음 엔티티 정의한.

중복 "col_1 및 col_2"값을 아래에 표시된 으로 삽입하려고하면 오류가 표시되지 않습니다. 데이터는 테이블에 잘 삽입됩니다 (MySQL).

Table table1 = new Table(); 
table1.col1 = new Column1("1"); 
table1.col2= new Column2("2); 
table1.col3= new Column3("3"); 
table1.save(); 

Table table2 = new Table(); 
table2 .col1 = new Column1("1"); 
table2 .col2= new Column2("2); 
table2 .col3= new Column3("3"); 
table2 .save(); 

테이블에 unique_constraint를 수동으로 만들어야합니까? 테이블이 JPA에 의해 생성되지 않은 경우

내가 위의 구현에서 누락

덕분에 무엇이든이있는 경우 나, 이해 도와주세요, KARTHIK

답변

2

는, 그래, 수동을 만들어야합니다 고유 한 제약 조건이 영향을 미치고 있습니다.

테이블이 미리 존재하지 않으면 JPA는 제한 조건을 생성해야합니다.

JPA는 기존 테이블에 대한 제약 조건을 만들지 않습니다.