我有一个域对象
@Entity
@Table (name = "vw_t_bucket")
public class TBucket {
....
@ManyToOne (cascade = { CascadeType.PERSIST, CascadeType.MERGE }, fetch = FetchType.EAGER, targetEntity = Prd.class)
@JoinColumns({
@JoinColumn(name = "key", referencedColumnName="key"),
@JoinColumn(name = "cdate", referencedColumnName="cdate")
})
public IPrd getPrd() {
return prd;
}
....
@ManyToOne (cascade = { CascadeType.PERSIST, CascadeType.MERGE }, fetch = FetchType.EAGER, targetEntity = Acct.class)
@JoinColumn (name = "acct", nullable = false)
public IAcct getAcct() {
return acct;
}
}
@Entity
@Table (name = "product")
public class Prd implements IPrd {
...
}
@Entity
@Table (name = "vw_acct")
public class Acct implements IAcct {
...
}
如您所见,TBucket 是一个视图,并连接到表 (product) 和另一个视图 (vw_acct)
我的数据库告诉我,视图和表的连接性能很差,我需要将视图更改为表。
但是,视图本身是由来自多个表的连接组成的。
我的负责人想知道是否有一种解决方案,我们可以将连接 sql 直接放在注释中,我告诉他我们只能将表/视图用于与域对象的映射。
我想知道这个问题是否有任何可能的解决方案。