将外部列添加到由JPA映射的表中会破坏正常运行吗?

时间:2012-07-19 14:15:13

标签: java jpa eclipselink

我是JPA的新手,我正在学习很多东西。我最近使用EclipseLink作为我的JPA提供程序部署了一个应用程序,它运行良好。

现在需要在其中一个映射表中添加一个额外的列。这个额外的字段用于报告目的,不会影响我的应用程序,所以我真的不想触及运行良好的东西。我当然会在适当的时候更新我的应用程序,在我的映射中包含这个字段,但我现在不想这样做。

此列添加将由DBA直接在表外部完成。这个添加会破坏我的申请吗?

我认为这不应该发生,因为映射字段没有变化,并且就JPA而言,没有任何变化。 JPA不会意识到添加了什么,所以一切都应该不会破坏。

如果我错了,请纠正我。感谢。

3 个答案:

答案 0 :(得分:7)

你可以做到没有理由它可以破解,JPA不会强迫你将每一列映射到实体中的一个字段。除非新列是必需的(NOT NULL)并且没有默认值(例如插入)。

答案 1 :(得分:4)

  

这个添加会破坏我的申请吗?

不,它不会。

JPA允许您仅映射您实际需要的表格和字段。

答案 2 :(得分:3)

JPA,Hibernate或EclipseLink等ORM在幕后做了什么?它从数据模型开始生成SQL,以便以透明的方式与数据库进行交互。

如果对数据库应用任何不需要修改的修改(用于与之交互的SQL)(不添加任何约束和非空列),则不会有任何修改。在从db编写/读取时,您的SQL查询将不会使用添加的列。

如果相反,您对约束应用了更改,即使不添加列,也可以使代码不再起作用。