2

我有一个单独的脚本,它为我们支持的每个数据库创建数据库和表。我正在使用 JPA 来操作数据库中的数据,但 JPA 不会创建数据库或表。

我想将外键添加到具有级联属性的新表中,以便在删除父表中的行时,也会删除子表中的相应行。

我知道在 JPA 中执行此操作所需的注释,但是我可以在用于创建数据库的脚本中创建外键和级联语句。

我的问题是,由于我使用单独的脚本来创建数据库表,我可以只在脚本中添加外键/级联语句,然后忽略所有 JPA 关系注释吗?在数据库脚本和 JPA 代码中添加此信息是否有优点/缺点?

4

1 回答 1

1

您应该始终进行 2 级检查。如果你不使用 JPA 的特性,那么这是对 JPA 提供的功能的极大浪费。您实际上应该确保 JPA 关系与您的数据库关系尽可能匹配。这将对您有很大帮助,因为 JPA 可以缓存数据,甚至可以防止对 DB 的不必要调用。例如,如果你有一个非空约束并且你坚持没有 JPA 约束,你的数据库必须完成所有工作并将异常抛出回来。通常在应用程序中,网络和数据库是应用程序中最慢的因素。所以你应该尝试模仿 JPA 中的约束以避免不必要的开销。还使用此类约束,您可以形成双向关系并拥有关联实体的集合以及更多此类优势。

于 2013-09-04T21:30:20.127 回答