spring-data-jpa-如何查询没有实体类的表?

uemypmqf  于 2021-07-26  发布在  Java
关注(0)|答案(0)|浏览(329)

我正在处理以下数据库表: users 表-每行表示系统中的一个用户。它对countries表有外键约束。 countries 表-每行代表一个国家,每个国家可以有一个 dialects 用方言储存在餐桌上。

我使用的是springdatajpa,并创建了以下实体类

public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    @Column(name = "full_name")
    private String fullName;

    @Column(name = "createdAt")
    private Date createdAt;

    @Column(name = "country_code")
    private Integer countryCode;

    @Column(name = "dialect_key")
    private String dialectKey;
}

public class Country {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer country_code;

    @Column(name = "name")
    private String name;

    @Column(name = "continent_name")
    private String continentName;

    @ElementCollection
    @CollectionTable(name = "Dialect", joinColumns = { @JoinColumn(name = "country_code") })
    private List<Dialect> dialectList;
}

@Embeddable
public class Dialect {
   private String name;
}

现在我有了一个用例,需要在其中获取 full name 以及 dialect name 对于给定的用户。

Select u.full_name, d.name from users u
join countries c on u.country_code = c.country_code
join dialects d on c.country_code = d.country_code
where u.id = :user_id and u.dialect_key = d.dialect_key

问题-当作为本机查询运行并返回对象列表时,上述查询工作正常。此外,我还将objects列表Map到pojo列表。有没有更好的方法来避免显式的object->pojo转换?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题