5

我有两个实体:

@Entity
@Table(name="TableA")
public class TableA {
     @Id
     @Column(name="id")
     long id;

     @Column(name="tableB_id")
     long tbId;

     @Column(name="column1", table="TableB")
     String tbColumn1; 
}

@Entity
@Table(name="TableB")
public class TableB {
     @Id
     @Column(name="id")
     long id;

     @Column(name="column1")
     String column1; 
}

TableA 有一个指向 TableB.id 的外键“tbId”。TableB 有一个名为“column1”的列,现在我想通过某种连接在 TableA 实体中获取“column1”。就JPA而言,我应该采取什么方式?这不是 OneToOne,因为我不想在 TableA 中连接整个 TableB 实体。

4

1 回答 1

10

如果您只想将一个对象中的列分组以读取数据,我建议您采用两种方法:

  1. 创建 DB VIEW 并将其映射为实体。
  2. 使用Result Classes Constructor Expression,它将根据结果查询返回实例化和填充提供的类的对象。

来自 ObjectDB 上的结果类构造函数表达式:

JPA 支持使用自定义结果类的实例包装 JPQL 查询结果。这主要用于具有多个 SELECT 表达式的查询,其中自定义结果对象可以提供一种面向对象的替代方案,以将结果表示为 Object[] 元素。

于 2012-07-04T12:10:39.547 回答