首页 \ 问答 \ 使用DAO的Hibernate(Hibernate using DAO)

使用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
更新时间:2023-07-05 16:07

最满意答案

调整图像大小时,请确保选择最适合您需要的插值。 为此,我建议:

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 enter image description here 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样式规范化之前对原始图像使用一些形态学操作。 也就是说,可以按如下方式进行侵蚀 (我在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 ...
  • 您可以在偏移过程后将图像标准化为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 ...
  • 问题出在你堆叠数组的方式,然后重塑。 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 ...

相关文章

更多

最新问答

更多
  • 获取MVC 4使用的DisplayMode后缀(Get the DisplayMode Suffix being used by MVC 4)
  • 如何通过引用返回对象?(How is returning an object by reference possible?)
  • 矩阵如何存储在内存中?(How are matrices stored in memory?)
  • 每个请求的Java新会话?(Java New Session For Each Request?)
  • css:浮动div中重叠的标题h1(css: overlapping headlines h1 in floated divs)
  • 无论图像如何,Caffe预测同一类(Caffe predicts same class regardless of image)
  • xcode语法颜色编码解释?(xcode syntax color coding explained?)
  • 在Access 2010 Runtime中使用Office 2000校对工具(Use Office 2000 proofing tools in Access 2010 Runtime)
  • 从单独的Web主机将图像传输到服务器上(Getting images onto server from separate web host)
  • 从旧版本复制文件并保留它们(旧/新版本)(Copy a file from old revision and keep both of them (old / new revision))
  • 西安哪有PLC可控制编程的培训
  • 在Entity Framework中选择基类(Select base class in Entity Framework)
  • 在Android中出现错误“数据集和渲染器应该不为null,并且应该具有相同数量的系列”(Error “Dataset and renderer should be not null and should have the same number of series” in Android)
  • 电脑二级VF有什么用
  • Datamapper Ruby如何添加Hook方法(Datamapper Ruby How to add Hook Method)
  • 金华英语角.
  • 手机软件如何制作
  • 用于Android webview中图像保存的上下文菜单(Context Menu for Image Saving in an Android webview)
  • 注意:未定义的偏移量:PHP(Notice: Undefined offset: PHP)
  • 如何读R中的大数据集[复制](How to read large dataset in R [duplicate])
  • Unity 5 Heighmap与地形宽度/地形长度的分辨率关系?(Unity 5 Heighmap Resolution relationship to terrain width / terrain length?)
  • 如何通知PipedOutputStream线程写入最后一个字节的PipedInputStream线程?(How to notify PipedInputStream thread that PipedOutputStream thread has written last byte?)
  • python的访问器方法有哪些
  • DeviceNetworkInformation:哪个是哪个?(DeviceNetworkInformation: Which is which?)
  • 在Ruby中对组合进行排序(Sorting a combination in Ruby)
  • 网站开发的流程?
  • 使用Zend Framework 2中的JOIN sql检索数据(Retrieve data using JOIN sql in Zend Framework 2)
  • 条带格式类型格式模式编号无法正常工作(Stripes format type format pattern number not working properly)
  • 透明度错误IE11(Transparency bug IE11)
  • linux的基本操作命令。。。