почему @UniqueConstraint не работает в спящем режиме? - PullRequest
0 голосов
/ 18 февраля 2020

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

@Entity
@Table(uniqueConstraints = {@UniqueConstraint(columnNames = {"firstName", "LastName"})})
public class Student {
    @Id
    @GeneratedValue(strategy =  GenerationType.IDENTITY)
    private Long id;
    private String firstName;
    private String LastName;
    //getter and setter and no-arg constructor
 Session session = HibernateUtil.getSessionFactory().openSession();
        session.beginTransaction();
        Student student1 = new Student("alireza", "rayani");
        Student student2 = new Student("alireza", "rayani");
        session.save(student1);
        session.save(student2);
        session.getTransaction().commit();

Ответы [ 2 ]

1 голос
/ 18 февраля 2020

Наконец, я обнаружил проблему, я изменил диалект с

properties.put(Environment.DIALECT,"org.hibernate.dialect.MySQL5Dialect");

на

properties.put(Environment.DIALECT, "org.hibernate.dialect.MySQL57Dialect");
0 голосов
/ 18 февраля 2020

Схема для вашей базы данных сгенерирована Hibernate? @UniqueConstraint используется только для генерации схемы. Если база данных уже существует, вы должны выполнить alter table для нее, чтобы добавить ограничение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...