gpt4 book ai didi

mysql - 如何通过传递另一个列值来检索列值

转载 作者:行者123 更新时间:2023-11-29 01:40:44 25 4
gpt4 key购买 nike

我有一个表客户端,其中有一列 cid。

实体类是

public class client{

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private Long id;

@Version
@Column(name = "version")
private Integer version;

@NotNull
@ManyToOne
private Client cid;

....
}

在我的 session 中,我保留了客户端 ID 并通过以下方式检索

String clientId = request.getSession().getAttribute("clientId").toString();

这是我的 Controller 代码

 List l=serviceClientServiceImpl.getSavedParents(clientId);
uiModel.addAttribute("savedParents",l);

这是我的 getSavedParents 代码

public List getSavedParents(String cid)
{
List l=serviceClientDaoImpl.getSavedParents(cid);
return l;
}

这是我的查询代码

public List getSavedParents(String cid)
{
String queryString="select distinct pid from ClientParentQuestion where cid="+cid;
Query query=entityManagerUtil.getQuery(queryString);
return query.getResultList();
}

当我尝试使用 ${savedParents} 在我的 jsp 中接收时,我什么也得不到。

我不明白我哪里弄错了。

任何人都可以解决我的问题吗?

最佳答案

您的代码容易受到 SQL injection 的攻击.

所以客户对自己有一个自引用。

我将 dao 方法重构为:

public List getSavedParents(String cid) {
return getEntityManager()
.createQuery("select distinct cpq.pid from ClientParentQuestion cpq where cpq.cid.id = :cid")
.setParameter("cid, Long.valueOf(cid))
.getResultList();
}

当您想要指定要返回或匹配的属性时,也可以为实体使用别名。

它更具可读性,并且遵循 JPQL/HQL 投影习惯用法。

关于mysql - 如何通过传递另一个列值来检索列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23932244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com