是否有可能使用命名查詢基於包含特定值的列表查找所有實體。命名查詢基於包含特定值的列表(實例變量)查找所有實體
我有一個叫做用戶
public class User implements Serializable {
private static final long serialVersionUID = -82485348776234092345L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@NotNull
@Size(min = 5, max = 50)
@Column(name = "email")
private String email;
@NotNull
@Size(min = 5, max = 50)
@Column(name = "password")
private String password;
@Column(name = "creationDate")
@Temporal(TemporalType.TIMESTAMP)
private Date creationDate;
@OneToMany(fetch = FetchType.EAGER, mappedBy = "user", cascade = CascadeType.ALL)
private List<Phone> phoneNumbers;
/* Getters and Setters */
}
我要簡化手機實體保持這個職位乾淨的實體:
public class Phone implements Serializable {
private static final long serialVersionUID = -34672347534985L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@NotNull
@Column(name = "number")
private String number;
@Column(name = "type")
@Enumerated(EnumType.STRING)
private EPhoneType phoneType;
@Column(name = "creationDate")
@Temporal(TemporalType.TIMESTAMP)
private Date creationDate;
@ManyToOne
private User user;
/* Getters and Setters */
}
現在我需要找到所有有手機用戶號碼,可以說:289647 ....和Phone.type ='MOBILE'
電話類型是一個枚舉。
我不知道如何使用命名查詢實現此目的。對於常規的本地查詢,我可以使用表上的JOIN來完成此操作。有沒有人用NamedQuery做過這樣的事情
這清除了很多東西。非常感謝。我的印象是,在命名查詢中,我不會使用任何連接,只需將對象屬性置入即可獲得我想要的結果。非常感謝。感謝幫助。 –