【发布时间】:2016-05-29 02:47:49
【问题描述】:
Entities/Model:
@Inheritance(strategy=InheritanceType.JOINED)
public class UserAccount implements CommonUserAccount {
@Id
private Long id;
private String email;
@Embedded
private PersonalInfo personalInfo = new PersonalInfo(); // name/surname - regular stuff
@ElementCollection
@CollectionTable(name = "UserAccountTags", joinColumns = @JoinColumn(name = "accountId", nullable = false))
@Column(name = "tag")
//@Transient
private Set<String> tags = new HashSet<String>();
@ElementCollection
@CollectionTable(name = "UserAccountRoles", joinColumns = @JoinColumn(name = "accountId", nullable = false))
@Enumerated(EnumType.STRING)
@Column(name = "userRole")
private Set<UserAccountRole> userRoles = new HashSet<UserAccountRole>();
// regular getters/setters
}
@Entity
@Table
@PrimaryKeyJoinColumn(name = "useraccountid")
public class DemoUserAccount extends UserAccount implements CommonUserAccount {
@Column
private String passwordHash;
@Column
private Long failedLogins;
@Column
@Temporal(TemporalType.TIMESTAMP)
Date lockedAt;
// regular getters/setters
}
问题: 是否可以使用 JPQL(对于 JPA2.0)构建查询,该查询将返回连接到父表 - UserAccounts 的 DemoUserAccounts?这样做会假设我也可以过滤标签/用户角色。通常,某些记录不会填写 DemoUserAccount 特定字段。
【问题讨论】:
-
请尽量将问题减少到绝对最小值。这将引起额外的关注,因为它会更容易复制。例如,尝试使用较少的字段,并且只使用与问题相关的注释。