我无法从两个实体中检索到包含两个字段的结果集
我尝试添加数据投射接口,但是它检索了不正确的数据
我有两个实体:
@Entity
@Table(schema = "common", name = "entity_a")
public class EntityA {
@Id
@Column(name = "code")
private String code;
@Column(name = "name")
private String name;
}
@Data
@Entity
@Table(schema = "common", name = "entity_b")
public class EntityB {
@Id
@Column(name = "code")
private String code;
@Column(name = "name")
private String value;
}
我也有一个JPARepository
界面
public interface EntityARepository extends JpaRepository<EntityA, String> {
interface EntityAB {
String getName();
String getValue();
}
@Query("SELECT a.name as name, b.value as value FROM EntityA as a " +
"INNER JOIN EntityB as b " +
"ON a.code = b.code " +
"WHERE a.code = :code")
Collection<EntityAB> findAllNamesAndValuesByCode(@Param("code") String code);
}
IDE向我展示了getName()方法链接是正确的,但是从未调用过getValue()...我以为我需要使用其他方法,但是我不知道它是如何完成的。因此,当我得到该查询的结果时,我得到了JdkDynamicAopProxy @ 11111的集合,依此类推……我无法使用此对象。
对我来说最好的方法是检索到对象EntityB
的链接,但我无法在EntityAB
投影中得到它……我想我应该使用类似
EntityB getEntityByCode(String code);
并用代码实现它,但这似乎太原始了... 我该怎么做?