我有一个表的客户端,并从检索结果我用这种方式如何处理JPA实体
public ClientParent getClient(Long clientId,Long parentId){
String queryString="SELECT cp FROM Client cp where cp.cid.id=:clientId " +
"and cp.pid.id=:parentId ";
Query query=entityManagerUtil.getQuery(queryString);
query.setParameter("clientId", clientId);
query.setParameter("parentId", parentId);
return (ClientParent)query.getSingleResult();
}
这是DAO方法。
其实在第一个控制让客户进入到控制器类再到服务,然后DAO类
现在让我们说客户端表是空的,所以在这种情况下return (ClientParent)query.getSingleResult();
将抛出我的错误。
我可以通过在服务类以及控制器类的try catch块中处理这个问题。但想知道如果我可以做出来抛出任何异常。我的意思是我有改变查询或应该怎么做我返回,以便它不会抛出异常,即使表是空
所以如果表不能为空,然后它会返回null.I主叫ClientParent的服务类'ClientParent CP = clientDaoImpl.getClientParent(的clientId,parentId的)所述的方法; \t \t cp.setDeleted(true); \t \t entityManagerUtil.update(cp);'所以cp对于空表是如此的,所以在服务类中也会抛出错误 – rocking
如果你没有找到对象,你会怎么做?你会创建一个新的?你可以在你的服务中使用'if(cp!= null)'。 – Jens
也result.size()返回int所以我们可以做result.size()!= null – rocking