Встречается на собеседованиях • сегодня

Как сделать ограничение на нескольких столбцах

В SQL можно создать ограничение (constraint), которое охватывает несколько столбцов, используя составной UNIQUE или PRIMARY KEY. В Java при работе с JPA/Hibernate это делается через аннотации.

Пример с JPA:

java
@Entity
@Table(
    name = "users",
    uniqueConstraints = {
        @UniqueConstraint(columnNames = {"email", "phone"})
    }
)
public class User {
    @Id
    @GeneratedValue
    private Long id;
    
    private String email;
    private String phone;
    // другие поля
}

Для проверки в коде:

java
if (userRepository.existsByEmailAndPhone(user.getEmail(), user.getPhone())) {
    throw new ConstraintViolationException("User with this email and phone already exists");
}

В чистом SQL:

sql
CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    email VARCHAR(255),
    phone VARCHAR(20),
    CONSTRAINT unique_email_phone UNIQUE (email, phone)
);
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы