Play Framework [1.2.4]: уникальные ограничения для объекта - PullRequest
1 голос
/ 10 февраля 2012

Я использую playframwork с mySQL для своего веб-приложения.У меня есть таблица, которая требует 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 - это разные сущности, связанные с сущностью Table.1006 *

Когда я пытаюсь вставить данные с повторяющимися значениями "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 для таблицы?

Пожалуйста, помогите мне понять, если что-то отсутствует вВыше реализация

Спасибо, Картик

1 Ответ

2 голосов
/ 11 февраля 2012

Если таблица не создана JPA, да, вам придется вручную создать уникальные ограничения, чтобы они вступили в силу.

Если таблица не существует, JPA должна создать для вас ограничение.

JPA не создает ограничение для уже существующей таблицы.

...