假设我有 3 个实体:MonitorPeriod、Monitor和File。
现在要求说对于每个MonitorPeriod,哪个表如下所示:
ID, DATE_FROM, DATE_TO
1 <value> <value>
我有一个而且只有一个Monitor,该表可能如下所示:
ID, COMPILED, ID_PERIOD, ID_FILE
1 true/false 1 1
现在,每个File,哪个表可能如下所示:
ID, NAME, DESCRIPTION
1 <value> <value>
可以有 N Monitor但每个MonitorPeriod只有一个。
有没有办法通过 JPA 模型实现这一目标?实体模型甚至应该创建阻止我在监视器表中插入两个具有相同MonitorPeriod ID 和相同文件ID 的 tupla 的约束。
- - - - - - - - - - - -更新 - - - - - - - - - -
是的,克里斯,你是完全正确的!我对我的功能分析师说过的话是一样的。
目标是在Monitor表中设计这三个实体关系:
ID, NAME, DESCRIPTION, ID_PERIOD, ID_FILE
我将有一个允许我插入的约束,例如:
ID, NAME, DESCRIPTION, ID_PERIOD, ID_FILE
1 null null 1 1 // ok
2 null null 2 1 // ok
3 null null 1 2 // ok
4 null null 2 2 // should throw error because file 2 is already linked with monitor period 1
我尝试重复这个逻辑:一个MonitorPeriod(从 1 月到 3 月的示例)可以只有一个Monitor(假设该监视器包含文件的详细信息,例如大小和扩展名,就是这样)。这是一个@OneToOne
关系。现在的问题是一个文件可以有更多的监视器,但一个周期,如果一个与监视器有关系的连接文件我无法实现上述情况。@OneToMany
也许我应该以不同的方式连接实体或插入另一个表,我会尝试让你知道。同时,如果有人可以建议我一些,我将不胜感激!