对于数据库中的许多模块,我们都有以下数据库结构。
db表A是主表,该表有多个扩展名(B,C,D等),它们没有自己的主键,但引用A的主键。我们使用JPA @Inheritence联接表方法来管理这些。因此,A的父实体和扩展A的子实体。
我们还为所有实施实体创建了多个jpa存储库。
当用户发送请求时,根据请求中的某些字段,我们必须确定正确的实现并对该特定存储库执行CRUD操作。
为了使其具有通用性和动态性,我创建了一个策略工厂,该工厂接受用户输入以标识正确的实现,并返回包含特定存储库的特定策略。
问题是我必须在每次调用服务类方法时执行此操作,以识别正确的策略。我觉得这个设计有缺陷。你能建议一个更好的设计吗?