У меня есть класс, который выглядит так:
public enum Scope {
A, B, C...
}
@Entity
public class User {
...
Scope scope; // enum, see above
@ElementCollecton
List<Long> numbers;
...
}
Моя проблема в том, что я не знаю, как выразить следующее ограничение либо с помощью JPA, либо непосредственно в моей базе данных Postgres: Тамможет быть только один пользователь с областью действия x, у которого есть число y.
Чтобы пояснить, что я имею в виду, псевдокод:
Это верно (Bobs 3 не сталкиваетсяс Томом 3, так как Боб имеет другую область видимости): Том (область = A, числа = [1,2,3,4]), Карл (область = A, число = [5,6,7]), Боб (область= B, числа = [3, 42, 100])
Но это недопустимо (Карлс 4 нарушает ограничение, так как Том имеет ту же область и также 4 в своем списке): Том (область = A,числа = [1,2,3,4]), Карл (область = A, число = [4,5,6,7]), Боб (область = B, числа = [3, 42, 100])
Спасибо за вашу помощь, Фабиан