Извините, что я не понимаю здесь, так как я уже три дня в Hibernate.
Я пытаюсь добавить проверки в Entity, которые потребуют от них сравнения с другим Entity.
Например, возьмите Person
Entity. Person
может иметь много BodyPart
s, но не более двух BodyPart
типа "рука" (мутация в сторону). Чтобы проверить это, при вставке новой BodyPart
мне нужно сравнить ее с другими BodyPart
для данного Person
и проверить, что для этого типа еще нет максимума.
Я смотрел материалы Constraint/Validation, предлагаемые Hibernate, но ни один из них, похоже, не охватывает такой сценарий. Как это обычно делается? Есть ли лучшее/другое решение для этого? Это действительно нестандартная потребность?
Hibernate Validation и JSR 303 в целом не охватывают такие сценарии afaik. Они были введены для обеспечения простой и быстрой проверки ограничений, таких как @NotNull, @Min и т.д. Вам нужно написать какой-то пользовательский класс проверки.
Лично я не использую JSR 303, потому что рано или поздно вы столкнетесь с такими требованиями и, наконец, получите код проверки, разбросанный во многих местах. Я предпочитаю иметь мою проверку в одном пакете и полностью отключен от модели домена.
вы можете попробовать массив, иметь первую запись как "рука" (это будет Array [0] и проверить его с помощью цикла, что он не превышает значение 2, то же самое для хвоста ног (1) и всего остального ты желаешь.