Projectクラス、、、がEmployeeあるとしましょうProjectAssignement。Role2つの値を持つ列挙型とがLEADERありFOLLOWERます。 sは、タイプがメンバーフィールドを持つオブジェクトを介してEmployeesに割り当てられます。ProjectProjectAssignmentroleRole
各プロジェクトにはリーダーを1人だけ持つことができますが、フォロワーを多く持つことができるというビジネスルールがあります。これを実装するために、 forとforRoleのメンバーフィールドsingularを指定します。(将来、さらにロールを追加する可能性があります。)サーバー側のJavaは、プロジェクトに複数のリーダーを割り当てようとしても、それを許可しないかどうかをチェックします。trueLEADERfalseFOLLOWER
これまでのところ、私は特に珍しいことを説明しているとは思いません。
厄介な点は次のとおりです。プロジェクトに同じ役割を持つ複数の人を割り当てないようにするために、(手書きの)クライアント側のJavaScript検証がいくつかあります。フォロワーにはハードコードされた例外があります。JavaScriptコードにRole列挙型を認識させてメソッドにアクセスできるようにするクリーンな方法はありますisSingularか?
(明らかに、ある種のRole列挙型をJavaScriptに実際に転記する必要があります。手動で、または半自動でさえも、それを避けたいと思います。それは、より多くの状況で行う価値よりも急速に手間がかかるためです。 )。
私はSpringや同様のフレームワークを使用しておらず、単なる.jspsを使用しています。そのようなものを使用するようにアプリケーション全体を書き直すことは良い考えかもしれませんが、問題の範囲をはるかに超えています。