我正在处理以下数据库表: 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转换?
暂无答案!
目前还没有任何答案,快来回答吧!