我是JPA的新手,我正在学习很多东西。我最近使用EclipseLink作为我的JPA提供程序部署了一个应用程序,它运行良好。
现在需要在其中一个映射表中添加一个额外的列。这个额外的字段用于报告目的,不会影响我的应用程序,所以我真的不想触及运行良好的东西。我当然会在适当的时候更新我的应用程序,在我的映射中包含这个字段,但我现在不想这样做。
此列添加将由DBA直接在表外部完成。这个添加会破坏我的申请吗?
我认为这不应该发生,因为映射字段没有变化,并且就JPA而言,没有任何变化。 JPA不会意识到添加了什么,所以一切都应该不会破坏。
如果我错了,请纠正我。感谢。
答案 0 :(得分:7)
你可以做到没有理由它可以破解,JPA不会强迫你将每一列映射到实体中的一个字段。除非新列是必需的(NOT NULL
)并且没有默认值(例如插入)。
答案 1 :(得分:4)
这个添加会破坏我的申请吗?
不,它不会。
JPA允许您仅映射您实际需要的表格和字段。
答案 2 :(得分:3)
JPA,Hibernate或EclipseLink等ORM在幕后做了什么?它从数据模型开始生成SQL,以便以透明的方式与数据库进行交互。
如果对数据库应用任何不需要修改的修改(用于与之交互的SQL)(不添加任何约束和非空列),则不会有任何修改。在从db编写/读取时,您的SQL查询将不会使用添加的列。
如果相反,您对约束应用了更改,即使不添加列,也可以使代码不再起作用。