Jpa 播放框架[1.2.4]:实体的唯一约束
我将playframwork与mySQL一起用于我的web应用程序。我有一个表,它在多个列上需要一个唯一的_约束 我的实体定义如下Jpa 播放框架[1.2.4]:实体的唯一约束,jpa,playframework,unique,unique-constraint,Jpa,Playframework,Unique,Unique Constraint,我将playframwork与mySQL一起用于我的web应用程序。我有一个表,它在多个列上需要一个唯一的_约束 我的实体定义如下 package models; import java.util.Date; import javax.persistence.Entity; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.Table; impor
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”值的数据时
如下所示,我没有得到任何错误。数据被很好地插入到
表(MySQL)
是否需要在表上手动创建唯一的_约束
请帮助我理解,如果我有任何遗漏在上面
实施
谢谢,
Karthik如果表不是由JPA创建的,是的,您必须手动创建唯一的约束才能生效 如果表不预先存在,JPA应该为您创建约束 JPA不会在已经存在的表上创建约束
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();