对于一对一关系,是否可以将外表的属性放在@Entity
中,就好像它属于@Entity
一样?我可以用一个例子来解释自己。
假设我有一张包含大量记录的表foo
。其中一些记录可以有一个额外的文本属性bar
,但大多数都不会。为了节省空间,我选择将额外的属性放在单独的表bar
中。在我的Foo
POJO中,我会添加一个类似于:
@OneToOne
@JoinColumn(name = "fooID")
private Bar bar;
无论我想访问bar
对象的foo
属性,我都必须写:
foo.getBar().getBar();
这看起来有点傻,特别是在Bar
POJO只有一个属性bar
的情况下。是否有可能使用一些神奇的注释,比如杰克逊的@JsonUnwrapped
,允许我直接在Bar
这样的Foo
属性?
@OneToOne(...)
@JoinColumn(...)
@MaybeSomeMoreMagicalAnnotations
private String bar;
答案 0 :(得分:1)
您可以使用Foo类
上的@SecondaryTable注释来执行此操作@Entity
@Table(name = "foo")
@SecondaryTable(name = "bar")
public class Foo {
@Column(table = "bar")
private String bar;
(everything else)
}