使用DAO的Hibernate(Hibernate using DAO)
我正在使用Jersey实现Restful Web Service。 我有一个使用hibernate的包来将数据映射到DB。 我是使用DAO进行休眠的新手:
我在GenericDao类中有一个方法:
public abstract class GenericDAO<T> extends DAOFactory { private final Class classe; public GenericDAO(Class classe) { this.classe = classe; } public List<T> findByCriteria(List<Criterion> list) throws Exception { Criteria criteria = getSession().createCriteria(classe); for (int i = 0; i < list.size(); i++) criteria.add(list.get(i)); return criteria.list(); } }
然后我有我的DAO类:
public class TaskDAO extends GenericDAO<Task> { public TaskDAO() { super(Task.class); } }
然后我在Service类中使用此方法,它完全正常,如下所示:
public Response get(long projectId, String username) { List<Criterion> list = new ArrayList<Criterion>(); Criterion c = Restrictions.eq("project.id", projectId); list.add(c); List<Deliverable> deliverables = deliverableDAO.findByCriteria(list); return deliverables }
问题在于另一个Service类中的此方法:
public Response get(String username) { List<Criterion> list = new ArrayList<Criterion>(); Criterion c = Restrictions.eq("user.username", username); list.add(c); List<Task> tasks = taskDAO.findByCriteria(list); return tasks; }
如你所见“Restrictions.eq(”project.id“,projectId)”对我来说很好,但“Restrictions.eq(”user.username“,username)”promlem可能与'user.username',
有帮助吗?堆栈跟踪中的错误如下:
javax.ws.rs.WebApplicationException: org.hibernate.QueryException: could not resolve property: user.username of: se.softwerk.timelog.model.Task at se.softwerk.controller.services.TaskService.get(TaskService.java:29) at se.softwerk.timelog.controller.TaskManager.taskList(TaskManager.java:72) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60) at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:205) at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75) at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:288) at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108) at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84) at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1469) at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1400) at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1349) at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1339) at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416) at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537) at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:708) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:298) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: org.hibernate.QueryException: could not resolve property: user.username of: se.softwerk.timelog.model.Task at org.hibernate.persister.entity.AbstractPropertyMapping.propertyException(AbstractPropertyMapping.java:83) at org.hibernate.persister.entity.AbstractPropertyMapping.toColumns(AbstractPropertyMapping.java:98) at org.hibernate.persister.entity.BasicEntityPropertyMapping.toColumns(BasicEntityPropertyMapping.java:61) at org.hibernate.persister.entity.AbstractEntityPersister.toColumns(AbstractEntityPersister.java:1801) at org.hibernate.loader.criteria.CriteriaQueryTranslator.getColumns(CriteriaQueryTranslator.java:522) at org.hibernate.loader.criteria.CriteriaQueryTranslator.findColumns(CriteriaQueryTranslator.java:537) at org.hibernate.criterion.SimpleExpression.toSqlString(SimpleExpression.java:66) at org.hibernate.loader.criteria.CriteriaQueryTranslator.getWhereCondition(CriteriaQueryTranslator.java:419) at org.hibernate.loader.criteria.CriteriaJoinWalker.<init>(CriteriaJoinWalker.java:123) at org.hibernate.loader.criteria.CriteriaJoinWalker.<init>(CriteriaJoinWalker.java:92) at org.hibernate.loader.criteria.CriteriaLoader.<init>(CriteriaLoader.java:93) at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1464) at org.hibernate.internal.CriteriaImpl.list(CriteriaImpl.java:374) at se.softwerk.timelog.model.dao.GenericDAO.findByCriteria(GenericDAO.java:33) at se.softwerk.controller.services.TaskService.get(TaskService.java:24)
I am implementing a Restful Web Service using Jersey. I have a package using hibernate to map the data to DB. I am new to hibernate using DAO :
I have a method in GenericDao class :
public abstract class GenericDAO<T> extends DAOFactory { private final Class classe; public GenericDAO(Class classe) { this.classe = classe; } public List<T> findByCriteria(List<Criterion> list) throws Exception { Criteria criteria = getSession().createCriteria(classe); for (int i = 0; i < list.size(); i++) criteria.add(list.get(i)); return criteria.list(); } }
Then I have my DAO classes like :
public class TaskDAO extends GenericDAO<Task> { public TaskDAO() { super(Task.class); } }
Then I use this method in a Service class and it works completely fine like this:
public Response get(long projectId, String username) { List<Criterion> list = new ArrayList<Criterion>(); Criterion c = Restrictions.eq("project.id", projectId); list.add(c); List<Deliverable> deliverables = deliverableDAO.findByCriteria(list); return deliverables }
The problem is in this method in another Service class :
public Response get(String username) { List<Criterion> list = new ArrayList<Criterion>(); Criterion c = Restrictions.eq("user.username", username); list.add(c); List<Task> tasks = taskDAO.findByCriteria(list); return tasks; }
as you see "Restrictions.eq("project.id", projectId)" works fine for me but "Restrictions.eq("user.username", username)" has a promlem maybe with 'user.username',
Any help?The error in the stack trace is like:
javax.ws.rs.WebApplicationException: org.hibernate.QueryException: could not resolve property: user.username of: se.softwerk.timelog.model.Task at se.softwerk.controller.services.TaskService.get(TaskService.java:29) at se.softwerk.timelog.controller.TaskManager.taskList(TaskManager.java:72) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60) at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:205) at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75) at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:288) at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108) at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84) at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1469) at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1400) at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1349) at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1339) at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416) at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537) at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:708) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:298) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: org.hibernate.QueryException: could not resolve property: user.username of: se.softwerk.timelog.model.Task at org.hibernate.persister.entity.AbstractPropertyMapping.propertyException(AbstractPropertyMapping.java:83) at org.hibernate.persister.entity.AbstractPropertyMapping.toColumns(AbstractPropertyMapping.java:98) at org.hibernate.persister.entity.BasicEntityPropertyMapping.toColumns(BasicEntityPropertyMapping.java:61) at org.hibernate.persister.entity.AbstractEntityPersister.toColumns(AbstractEntityPersister.java:1801) at org.hibernate.loader.criteria.CriteriaQueryTranslator.getColumns(CriteriaQueryTranslator.java:522) at org.hibernate.loader.criteria.CriteriaQueryTranslator.findColumns(CriteriaQueryTranslator.java:537) at org.hibernate.criterion.SimpleExpression.toSqlString(SimpleExpression.java:66) at org.hibernate.loader.criteria.CriteriaQueryTranslator.getWhereCondition(CriteriaQueryTranslator.java:419) at org.hibernate.loader.criteria.CriteriaJoinWalker.<init>(CriteriaJoinWalker.java:123) at org.hibernate.loader.criteria.CriteriaJoinWalker.<init>(CriteriaJoinWalker.java:92) at org.hibernate.loader.criteria.CriteriaLoader.<init>(CriteriaLoader.java:93) at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1464) at org.hibernate.internal.CriteriaImpl.list(CriteriaImpl.java:374) at se.softwerk.timelog.model.dao.GenericDAO.findByCriteria(GenericDAO.java:33) at se.softwerk.controller.services.TaskService.get(TaskService.java:24)
原文:https://stackoverflow.com/questions/11350708
最满意答案
调整图像大小时,请确保选择最适合您需要的插值。 为此,我建议:
gray = cv2.resize(255 - warped, (28, 28), interpolation=cv2.INTER_AREA)
你可以在这里看到方法的比较: http : //tanbakuchi.com/posts/comparison-of-openv-interpolation-algorithms/但是由于只有少数几个,你可以尝试全部,看看能给出最好的结果。 看起来默认为INTER_LINEAR。
When you resize the image, make sure you select the interpolation that best suits your needs. For this, I recommend:
gray = cv2.resize(255 - warped, (28, 28), interpolation=cv2.INTER_AREA)
which results in after the rest of your processing.
You can see a comparison of methods here: http://tanbakuchi.com/posts/comparison-of-openv-interpolation-algorithms/ but since there's just a handful, you can try them all out and see what gives the best results. It looks like the default is INTER_LINEAR.
相关问答
更多-
分割图像(看看这个 )。 使用灰度阈值对段进行分类(因为您只是在寻找白色)。 通过使用白色边界框(或边界框,如果它在多个分段中分解)裁剪图像。 这可能不适用于白色汽车 - 但要为这种情况制定一些规则不应该太困难。 查看tesseract-ocr来提取文本。 Segment the image (take a look at this). Classify segments using a gray scale threshold (since you're just looking for white). ...
-
我遇到过同样的问题。 解决方案是从所有代码所在的文件夹中运行代码。 不要将mnist_1.0_softmax.py代码复制到您的IDE并运行它。 从下面的链接下载或克隆整个回购 https://github.com/martin-gorner/tensorflow-mnist-tutorial.git 一旦克隆,你会看到在那个文件夹中有一个名为tensorflowvisu.py的文件。 所以这不是您从conda或pip安装的模块。 这只是作者在这种情况下作为模块使用的文件。 去所有这些代码通过命令行并从那 ...
-
MNIST的缩小图像(Downscale image for MNIST)[2023-10-05]
我不确定你提到的框架,但有一点可以帮到这里,就是在进行MNIST样式规范化之前对原始图像使用一些形态学操作。 也就是说,可以按如下方式进行侵蚀 (我在python中记录方法,在你使用的框架中应该有类似的,因为操作非常标准)。 import numpy as np import cv2 xx = cv2.imread('6.jpg') # your original image of 6 kernel = np.ones((20,20), np.uint8) erosion = cv2.erode(xx, ... -
有一个称为“对象检测”的热点,试图做你想要的。 通常,您可以从任何图像甚至视频中检测任何内容(数字,人物,汽车等)。 最先进的技术大致分为两类: 更快 - RCNN ,它首先为您感兴趣的对象提出了许多候选窗口,然后检测这些窗口内的实际内容。 SSD只扫描图像一次并检测物体,与Faster-RCNN相比,速度更快但不可靠。 一个众所周知的实时物体检测方法是YOLO(You Only Look Once),它属于SSD类别,并且在这里有一个非常令人印象深刻的实时演示,为您提供物体检测感。 搜索这些方法的名称,您 ...
-
您可以简单地理解它,因为MNIST数据中的每个图像都是28x28像素,所以当我们将图像转换为一维矩阵时,其大小变为28x28 = 784。 MNIST图像大小为28×28像素,因此它被表示为784 1-d阵列。 矩阵中的每个值表示0到255之间的值。 You can understand it simply, As every image in MNIST data is 28x28px, so when we convert our image into 1D matrix, its size becom ...
-
我不完全确定你的意思。 如果你的网络像[784,30,10]那样分层,你有784个输入神经元,30个隐藏神经元和10个输出神经元。 神经元对“像素”一无所知,它们只是参数。 网络基本上是从第一个输入计算30个值,输出从前30个值计算10个值。 我可以说我将784像素分成30个小图像(每个图像中784/30像素)然后进行计算吗? 不,因为神经元不是图像。 I'm not entirely sure what you mean. If you have a network that is layered lik ...
-
调整图像大小时,请确保选择最适合您需要的插值。 为此,我建议: gray = cv2.resize(255 - warped, (28, 28), interpolation=cv2.INTER_AREA) 结果 在剩下的处理之后。 你可以在这里看到方法的比较: http : //tanbakuchi.com/posts/comparison-of-openv-interpolation-algorithms/但是由于只有少数几个,你可以尝试全部,看看能给出最好的结果。 看起来默认为INTER_LINEA ...
-
Deskew MNIST图像(Deskew MNIST images)[2022-02-21]
您可以在偏移过程后将图像标准化为0到1之间的范围。 img = deskew(img) img = (img - img.min()) / (img.max() - img.min()) 看到这个问题 。 要在deskew函数中加入它,你可以像这样重写它: def deskew(image): c,v = moments(image) alpha = v[0,1]/v[0,0] affine = np.array([[1,0],[alpha,1]]) ocenter = n ... -
重塑MNIST的阵列(Reshape arrays from MNIST)[2022-01-01]
问题出在你堆叠数组的方式,然后重塑。 Numpy通过逐行进行重塑阵列。 下面的代码实现你想要的: upper_layer = np.append(zero.reshape(28, 28), nine.reshape(28, 28), axis=1) lower_layer = np.append(nine.reshape(28, 28), zero.reshape(28, 28), axis=1) layout = np.stack([upper_layer, lower_layer]) plt.ims ... -
请记住,mnist使用卷积网络,而不是传统的神经网络,因此,您正在处理卷积(而不是神经元),在此示例中,在卷积中,您通常对每个输出通道使用偏置,此示例使用32个输出通道第一个卷积层,它给你32个偏见。 Remember that mnist is using convolutional networks, not conventional neural networks and hence, you are dealing with convolutions(not neurons) and in this ...