java如何在JPA中重写annotationdefined表名?
我的应用程序中有一些表具有这种注释结构,我使用JpaRepository
进行CRUD操作
@Entity
@Table(name = "FOO")
public class Foo implements Serializable {
…
}
但是我只需要覆盖orm.xml
或属性文件中的表名(而不是任何@Column
等属性),而不更改实际代码。我已经搜索过了,但在Spring Data JPA中找不到这样做的方法。我是否遗漏了什么,或者它不受支持
# 1 楼答案
首先,Spring数据不是一个JPA提供者,只是一个“助手”库,提供了一个通用持久性操作的包装器。然而,JPA规范确实提供了一种通过XML映射文件覆盖注释的机制。因此,假设您的提供者(Hibernate、EclipseLink、OpenJPA或其他什么)完全实现了JPA规范,那么您应该能够做到这一点
然而,似乎不能只覆盖表名:除非列名映射到默认值,那么,据我所见,您需要在映射文件中指定每一列——我想这有点不方便
Pro JPA 2:掌握Java持久性API说明:
所以你需要在orm中输入一个条目。xml,如下图所示,根据需要添加其他属性