Play Framework [1.2.4]:实体的唯一约束

时间:2012-02-10 17:22:18

标签: jpa playframework unique unique-constraint

我正在使用playframwork和mySQL作为我的Web应用程序。我有一个表,需要在多列上使用unique_constraint。

我将实体定义如下......

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;

}

Column1和Column2是与之关系不同的不同实体 表实体。

当我尝试插入重复的数据" col_1和col_2"价值为 如下所示,我没有错误。数据插入正常 table(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?

如果我上面有任何遗漏,请帮助我理解 实施

谢谢, KARTHIK

1 个答案:

答案 0 :(得分:2)

如果表格不是由JPA创建的,是的,您必须手动创建唯一的约束条件才能使它们生效。

如果表格不存在,JPA应为您创建约束。

JPA不会对现有表创建约束。