JPA を使用してエンティティに XOR 制約を定義する必要があります。つまり、列 A または列 B のいずれかに値を持つことができるが、両方 (ただし、少なくとも 1 つ) には値を持てないことを指定する制約です。次のように MsSQL データベースでこれを手動で行うことは可能のようですが、理想的には、JPA アノテーションを使用してエンティティでこれを定義することをお勧めします。
CREATE TABLE [dbo].[test01](
[i1] [int] NULL,
[i2] [int] NULL
) ON [PRIMARY]
ALTER TABLE [dbo].[test01] WITH CHECK ADD CONSTRAINT [CK_test01] CHECK
(([i1] IS NULL AND [i2] IS NOT NULL OR [i2] IS NULL AND [i1] IS NOT NULL))
ALTER TABLE [dbo].[test01] CHECK CONSTRAINT [CK_test01]
これは可能ですか?