是否可以在运行时修改@Column()的映射?

时间:2015-03-30 11:42:03

标签: spring hibernate jpa annotations

我有一些实体映射到sql视图

@Entity
@Immutable
@Table(name = "SOME_VIEW")
public class MyClass implements Serializable {

 @Id
 @Column(name = "SOME_COL", insertable = false, updatable = false)
 private Integer id;
 ...
}

今天有人告诉我,在其中一台服务器上,SOME_COL中的SOME_VIEW列将填充空值,我应该使用SOME_OTHER_COL作为ID,具体取决于{{1}中的值文件。 由于config.properties@Column,我可以在tomcat上启动应用程序之前将映射更改为@Retention(RUNTIME)吗?

1 个答案:

答案 0 :(得分:0)

不,你不能用替换来“愚弄”hibernate,即使是使用javassist或asm的帮助(没有头疼和使用它们)。我看到了几种解决问题的方法:

  1. 尝试理解为什么主键列有空值并更正它们。
  2. 将代码划分为两个分支,并为每个服务器构建指定的包。
  3. 查找自然键并使用EmbeddedId。