问题标签 [genericdao]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring - 用于开发 GenericDao 的最佳 Spring API
我看到很多关于spring jpa的实现技术(jpatemplate、japdaosupport spring-data-jpa、native way entitymanager、HibernateSupport等),这是开发通用DAO的最佳技术,应该是干净的资源分配、事务管理和高表现 。什么是利弊
设想
- 实体 >70
- 网络应用和网络服务
- 未来的 osgi 支持和多个数据源
java - MVC 中所有控制器的通用业务服务层
我创建了一个包含以下方法的服务类
我想让这个类成为通用的,因为 Controller 可以在调用方法时传递任何对象。而没有属性从一个 bean 到另一个 bean 变化的现实。
spring - GenericDAO 和 NoSuchBeanDefinitionException:没有唯一的 bean Spring 3.0
我正在使用带有 genericDAO 的 Spring 3.0。我有这个:
但是当我尝试按如下方式注入它们时:
我得到:
预期单个匹配 bean,但找到 3:[genericDAOImpl,A,B]
我不明白为什么。我也试着用
乃至
我也尝试使用@Qualifier,但我总是遇到相同的异常,看起来 Spring 总是在寻找 GenericDao 而不是特定的类。
但它仍然无法正常工作。我不明白为什么。
有什么建议么?
非常感谢你。
java - 通用 DAO 和嵌套属性支持
我正在尝试通过 DAO 对象执行数据库访问,并且遇到了需要查询另一个实体中的字段的情况。
考虑通过外键在实体 A 中连接的两个实体(实体 A 和实体 B)EntityA.idEntityB
。
我有GenericDao<EntityA> daoA
并且我正在尝试获取与 EntityB 的确定字段匹配的所有结果:idEntityB.fieldOfB
所有结果都在 dao 的相同查找方法中。
可能吗?如果是这样,一些方向会很好。谢谢
编辑
我的代码示例:
实体
DAO 访问
错误消息类似于“无法解析属性 idEntityB.fieldOfB ”
编辑 2
我能够找到我想做的事情。尽管我的 API 略有不同,但我相信这对于在自己项目的早期阶段遇到此问题的任何人都有帮助。
http://code.google.com/p/hibernate-generic-dao/
该框架具有强大而灵活的搜索功能。这是通过将搜索对象传递给通用和通用 DAO 上的搜索方法来使用的。
此项目完全支持具有嵌套属性的搜索。
java - 是否可以在不使用反射的情况下用 Java 编写一个简单的通用 DAO?
我正在 Java 6(及更高版本)中开发玩具数据访问机制。每个模型类都应该有一个findById
静态方法,该方法应该从具有指定 id 的行实例化一个对象。我想出了下面显示的方法。我的方法被认为是好的做法吗?如果没有,有什么可以改进的?
数据库 (MySQL) 引导脚本:
源代码:
java - 通用 DAO 如何为所有不同的 DAO 实现返回相同的类型?
我正在为我的 DataNucleus JDO DAO 创建通用 DAO。通用 DAO 将执行获取、更新、删除、创建操作和一些其他通用操作,因此这些实现可以在更具体的 DAO 中进行扩展。
是否有可能以某种方式扩展通用 DAO 并让它在例如通过 id 获取对象时返回正确的类型?
java - 如何使用 JDBC 和连接池实现 DAO 管理器?
我的问题如下。我需要一个作为 Web 系统中数据库连接的单点工作的类,以避免一个用户有两个打开的连接。我需要它尽可能优化,它应该管理系统中的每笔交易。换句话说,只有那个类应该能够实例化 DAO。为了让它更好,它还应该使用连接池!我该怎么办?
java - 在通用 DAO 中使用 Hibernate 调用存储过程的最佳方法是什么?
我正在使用 MySql,我的调用查询如下:
java - 尝试使用 EhCache 使用 Spring 和扩展 Hibernate 的 JpaRepository 的自定义 GenericDao 接口
背景
这是我的工作(简化)GenericDao
界面,由 any 实现DomainDao
:
GenericDao.java
GenericDaoImpl.java
例如,要管理域Foo
和Bar
,您只需要创建两个接口,如下所示:
FooDao.java
巴道.java
的@Autowired
注解Spring
将自动实例化GenericDaoImpl
具有良好实体和主键类型的 a。
问题
我现在正在尝试使用 EhCache 和EhCache Spring Annotations模型在我的 DAO 上添加一个缓存过程。
GenericDao.java
应用程序上下文.xml
ehcache.xml
使用 , 的问题GenericDao
是缓存应该相互DomainDao
独立地管理。例如,在当前配置下,如果我调用fooDao.findAll()
, 然后barDao.persist(new Bar())
,生成的缓存fooDao.findAll()
将被重置,因为会使用相同的缓存(即<cache name="dao" />
),而它不应该使用。
小径
我尝试实现自己的CacheKeyGenerator
,这将考虑到调用的类型DomainDao
:
应用程序上下文.xml
DaoCacheKeyGenerator.java
DaoCacheKey.java
上面的问题DaoCacheKey
是该equals
方法从未被调用(至少程序永远不会中断),但是该方法hashCode
确实如此,因此无法应用该算法。
问题
有没有人已经管理过这样的缓存?如果是怎么办?我的尝试是否相关?如果是,如何使equals
方法被调用,而不是那个hashCode
?通过扩展现有的CacheKeyGenerator
? 如果是,是哪一个?
hibernate - 通用 DAO 模式实现设计
我正在做一个 GWT+Hibernate 项目。它由各种模块组成,我将在其中命名两个 - 公司和登录。对于每个模块,我都创建了一个 RPC 服务,这样项目就不会以一个可以完成所有工作的神一样的服务而告终。
为了与数据库交互,我使用 Hibernate API——具体来说,是 POJO 中的 EntityManager 和 Annotations。
另外,我创建了一个通用 DAO 类来处理基本的 CRUD 操作。GenericDAO 类也将处理 EntityManager。每个模块服务类都将扩展这个 GenericDAO,以便它可以添加自己的查询方法。
以下是 GenericDAO 类的存根 -
现在,假设我想要公司模块的另一种查找方法。所以,我写了我的 CompanyService 类 -
其他模块也遵循类似的脚步。这样,我也可以为每个模块的服务添加非数据访问相关的方法。
现在,我需要在客户端公开这些模块。我选择不以任何方式公开 GenericDAO 类;所以没有接口。相反,我为每个模块创建一个接口。
因此,对于 CompanyService,它是 -
其他模块的接口也是如此。
这是一个好的设计吗?GenericDAO 确实保存了一些会话管理和基本 CRUD 操作的样板代码。但是,由于 Hibernate API,每个方法的代码已经减少到 3-4 行。在这种情况下,我没有发现 GenericDAO 的任何其他用途。还是我以错误的方式实施它?
请提出比这更好的方法,以防这种设计不够好。
编辑:我想知道在这种情况下你会给服务模块起什么名字。我现在正在使用“Impl”后缀,但感觉就像卡在我的喉咙里。例如,对于公司模块,接口 - CompanyService 类 - CompanyServiceImpl
更好的建议?