在下面的代码中,问题是我无法在不使用dao.list().size()的情况下测试dao.add(),反之亦然。这种做法是正常的还是不正确的?如果不正确,如何改进?publicclassItemDaoTest{//daototest@AutowiredprivateItemDaodao;@TestpublicvoidtestAdd(){//issue->testingADDbutusingLISTintoldSize=dao.list().size();dao.add(newItem("stuff"));assertTrue(oldSizetestingFINDbutusingADDI
这更多是我目前遇到的架构问题。我需要有关在项目中集成EJB和JPA的最佳实践的帮助。我想要EJB来完成服务层的工作,其中包含我的应用程序的业务逻辑。就在那之下,我想要一个DAO层,我的EJB将有一个句柄,使用DAO工厂尽可能地分离这两个层。知道了这一点,我显然也不能将我的DAO作为EJB,因为我不希望它们自动注入(inject),因为我希望它们通过工厂创建。这导致我使用手动创建实体管理器Persistence.createEntityManagerFactory("PortalEJB").createEntityManager();现在...这个调用位于我的抽象JPADAO中:publ
免责声明:我几乎可以肯定我以前见过同样的问题,但现在找不到了。如果有人发现该问题,请提供链接。关于实现CRUD操作的类的最佳名称,我至少听到了两种意见:有人说DAO是一个经典的名字,每个人都知道它的意思,但也有人说Manager更符合CRUD功能。我应该在什么时候选择一个或另一个(或另一个)名称时是否有任何明确的规则? 最佳答案 我绝对不喜欢经理;“管理”某事可能意味着(并且曾经意味着)各种各样的事情。如果您担心人们不知道DAO是什么意思,您可以将其拼写为“DataAccess”,例如。但我发现DAO得到了广泛的理解。另一种方法是使
我正在编写一个公开RESTful服务的Spring(4.1.7)Web应用程序,并希望使用DTO“资源”对象在Controller和客户端浏览器之间进行通信,而不是公开我的持久性实体。目前应用有以下几层:查看(JSP/JSON)控制者DAO(@Service)DAO(@Repository)我的问题是,我应该在哪里将我的DAO实体映射到DTO资源?我查看了一些使用SpringHATEOAS的示例,它们显示Resource扩展ResourceSupport的对象被映射到Controller.这是最好的方法吗,还是我应该从DAO服务返回资源?我希望将Link元素添加到返回的资源(用于自身和
我正在寻找一个很好的DAO生成器,它可以使用plainJDBC4和基本的CRUD构建类操作。我看到了NetBeans使用JPA生成类和JavaBeans或实体和Hibernate.我正在寻找类似这样的其他工具,但我要求生成的类不使用第三方库,只使用JRE.我很感激你的帮助。 最佳答案 我认为您可能有兴趣看一看AuDAO源代码(您可以“使用”它生成DAO和Bean的部分并编写执行类似操作的代码-它是开源的)这个库完全符合您的描述:但是,我认为您可能没有捕获要点,使用像Hibernate这样的工具的优势在于为开发人员提供了与数据库的松散
我正在编写一个RESTapi。在我的DAO层中可能有两个异常,即Exception_X和Exception_Y。如果我在DAO层遇到异常Exception_X,我的Controller应该返回状态码200,如果Exception_Y那么401如果一切顺利,Controller应该返回201。现在我在想什么我会抛出遇到的异常,因为它是从DAO层通过服务层到Controller,在Controller的catchblock中我将返回响应。是否可以接受或是否有其他标准方式? 最佳答案 是的,这是一种可以接受的方式。但是,我建议不要使用tr
我正在使用BeanPropertySqlParameterSource和SqlParameterSource开发SpringJDBC示例。当我运行我的代码时,我看到出现以下错误。花了几个小时后,我没有找到它的解决方案。有什么问题请指点。org.springframework.dao.InvalidDataAccessApiUsageException:NovaluesuppliedfortheSQLparameter'employeeId':Invalidproperty'employeeId'ofbeanclass[com.spring.jdbc.model.Order]:Beanp
我发现很难接受JavaMVC框架,因为它看起来好像Servlet、JSP和轻量级DAO将完成您需要它做的所有事情,以便解耦Controller/View/模型。对于PHP,我可以看到必要性,因为没有像servlet这样的内置结构,但是JavaMVC框架真的能提供更多吗? 最佳答案 Servlets/JSP的一个弱点是可测试性。尽管使用mock对Servlet进行单元测试当然是可能的,但感觉它们在设计时并没有考虑到单元测试。JSP甚至更棘手。您可以依赖Selenium的功能测试,但如今,人们需要单元测试覆盖率。一些更现代的JavaMV
我正在尝试用java开发通用DAO。我尝试了以下内容。这是实现通用DAO的好方法?我不想使用hibernate。我试图让它尽可能通用,这样我就不必一遍又一遍地重复相同的代码。publicabstractclassAbstractDAO{protectedResultSetfindbyId(Stringtablename,Integerid){ResultSetrs=null;try{//thefollowinglinesarenotworkingpStmt=cn.prepareStatement("SELECT*FROM"+tablename+"WHEREid=?");pStmt.se
我是JPA的新手,想实现一个通用的JPADAO,需要找到查询结果集的行数以实现分页。在网上搜索后,我找不到实用的方法来做到这一点。这是许多文章中建议的代码:publicLongfindCountByCriteria(CriteriaQuerycriteria){CriteriaBuilderbuilder=em.getCriteriaBuilder();CriteriaQuerycountCriteria=builder.createQuery(Long.class);RootentityRoot=countCriteria.from(criteria.getResultType())