Jakarta ee javaee-持久性动态查询
我对JavaEE和持久性技术非常陌生。 我正在尝试编写一个动态查询。详细信息:Jakarta ee javaee-持久性动态查询,jakarta-ee,persistence,Jakarta Ee,Persistence,我对JavaEE和持久性技术非常陌生。 我正在尝试编写一个动态查询。详细信息: 有一个数据表(“newsactivites”),如下所示: id type 4 UploadVideo 4 CreateBlog 1 UploadPicture 10 UploadVideo 10 CreateBlog private List<Type> activities=new ArrayList<Type>(); @CollectionElement
有一个数据表(“newsactivites”),如下所示:
id type
4 UploadVideo
4 CreateBlog
1 UploadPicture
10 UploadVideo
10 CreateBlog
private List<Type> activities=new ArrayList<Type>();
@CollectionElements()
@Column(name="type")
@Enumerated(EnumType.STRING)
@JoinTable(name = "newsactivities", joinColumns = { @JoinColumn(name = "id") })
public List<Type> getActivities() {
return activities;
}
此外,还有一个枚举:
public enum Type {
UploadVideo("show.uploadedVideo"),
UploadPicture("show.uploadedPicture"),
CreateBlog("show.createdBlog");
}
所以我想写一个这样的方法:
id type
4 UploadVideo
4 CreateBlog
1 UploadPicture
10 UploadVideo
10 CreateBlog
private List<Type> activities=new ArrayList<Type>();
@CollectionElements()
@Column(name="type")
@Enumerated(EnumType.STRING)
@JoinTable(name = "newsactivities", joinColumns = { @JoinColumn(name = "id") })
public List<Type> getActivities() {
return activities;
}
private List activities=new ArrayList();
@集合元素()
@列(name=“type”)
@枚举(EnumType.STRING)
@JoinTable(name=“newsactivities”,joinColumns={@JoinColumn(name=“id”)})
公共列表活动(){
返回活动;
}
但我只想在给定时间返回一个id的活动:
public List<Type> getActivities(int id) { }
公共列表getActivities(int-id){
任何帮助都将不胜感激 如果我没有看错您的模型(我不确定),您应该有一个带有外键的实体类
Newsactivities
(在类Newsactivities.class
)。然后您需要一个列表
(而不是列表
):
公共列表getActivities(int-id){
TypedQuery tq=em.createQuery(
从Newsactivities n中选择n,其中n.type=:type,Newsactivities.class);
设置参数(“类型”,id);
返回(tq.getResultList());
}
您有一个与对象的类型相关联的
public class A{
private List<Type> activities=new ArrayList<Type>();
@CollectionElements()
@Column(name="type")
@Enumerated(EnumType.STRING)
@JoinTable(name = "newsactivities", joinColumns = { @JoinColumn(name = "id") })
public List<Type> getActivities() {
return activities;
}
}
现在,您可以使用findTypeById
,这要求您有A
对象不,我没有实体类NewsActivities。在数据表中,ID表示用户,type列表示用户的“活动”。如果给定用户有活动,我希望返回所有类型的活动。但您有datatable Newsactivitie是的,数据表的名称是newsactivites。