是否有任何可能的变体将数据从另一个表插入 Hibernate 实体。例如,我们有以下 DB 模型:
ItemTable:
ITEM_ID NUMBER not null,
ITEM_NAME VARCHAR2,
I_OBJECT_ID NUMBER;
ObjectTable:
OBJECT_ID NUMBER not null,
OBJECT_NAME VARCHAR2;
以及以下java代码:
@Entity
@Getter
@Setter
@Table(name = "ITEMTABLE")
public class ItemDTO {
@Id
@Column(name = "ITEM_ID")
private long id;
@Column(name = "ITEM_NAME")
private String itemName;
@Column(name = "I_OBJECT_ID")
protected long objectId;
**//TODO: here we need OBJECT_NAME column form ObjectTable**
private String objectName;
}
所以我们只需要一列而不是整个 ObjectTable 实体作为objectName道具。
我尝试过这样的构造:
@JoinTable(name = "OBJECTTABLE", joinColumns = {
@JoinColumn(name = "OBJECT_ID", referencedColumnName = "I_OBJECT_ID") })
@Column(name = "OBJECT_NAME")
但它失败了:
oracle.jdbc.OracleDatabaseException: ORA-00904: "ITEMDTO0_"."OBJECT_NAME": invalid identifier
@JoinTable或@JoinColumn的每个示例都假设我需要包含另一个实体作为道具,这将是多余且缓慢的。
这可以以任何方式解决吗?
PS关于为什么我不想将第二个实体包含在第一个实体中的两美分,是因为我希望我的 JpaRepository 将允许我直接在连接列上进行排序/过滤。
请指教。