Как получить объект в DTO Projection? - PullRequest
0 голосов
/ 03 июня 2019

Я не могу получить набор результатов, который содержит оба поля из двух объектов

Я пытался добавить интерфейс переноса данных, но он получает неверные данные

У меня есть две сущности:

@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);

и реализовать его в коде, но это кажется слишком примитивным ... Как мне сделать такую ​​операцию?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...