问题标签 [dao]

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.

0 投票
19 回答
262145 浏览

java - @Transactional 注解属于哪里?

您应该将它们@Transactional放在DAO类和/或它们的方法中,还是更好地注释使用 DAO 对象调用的服务类?或者注释两个“层​​”是否有意义?

0 投票
3 回答
3474 浏览

java - Spring MVC 领域对象处理最佳实践

让我们假设一个简单的 Spring MVC 控制器接收域对象的 ID。控制器应该调用一个应该对该域对象做某事的服务。

您在哪里通过从数据库加载域对象的 ID 将其“转换”为域对象?这不应该由控制器完成。因此服务方法接口必须使用接受域对象的ID不是域对象本身。但是如果服务的接口将域对象作为参数,它会更好。

您对这个常见用例有何看法?你如何解决这个问题?

0 投票
2 回答
36225 浏览

dao - DAO 和 DAL 有什么区别?

在学校学习过 Java,我对 DAO 模式(数据访问对象)非常熟悉。但是在工作中我使用.NET。在 .NET 中经常谈论 DAL(数据访问层)。对我来说,他们的目的似乎很相似。所以问题是DAO和DAL基本上是一回事吗?DAL 一词是否只是为了不与数据访问对象混淆而组成的?

0 投票
2 回答
6078 浏览

java - 在 Java DAO 上使用同步会导致问题吗?

在 Java DAO 中的方法上使用“同步”关键字是否会在 Web 应用程序使用时引起问题?

我问是因为我有一个多线程独立应用程序,它需要同步方法以避免资源冲突,如此处所示。

我担心的是,当大量人尝试使用应用程序时,同步方法会阻塞并减慢整个应用程序的速度。

我正在使用 Spring 注入的 JPA 实体管理器工厂,它为 DAO 提供了一个实体管理器。从技术上讲,我可以删除 DAO 层并让类直接调用实体管理器工厂,但我喜欢 DAO 提供的分离。

我还应该注意,我非常小心不要在线程之间传递连接的实体 ORM 对象。我推测是访问DAO时出现资源冲突错误。我认为多个线程同时运行并尝试以非原子方式持久化或从数据库中读取。

在这种情况下,使用 DAO 会造成更大的伤害而不是帮助吗?


我遗漏的一个重要信息是 DAO 不是单例的。如果我的思考足够清晰,可以包含这些细节,我可能一开始就不会问这个问题。

如果我理解正确,Spring 会为每个使用它的类创建一个 DAO 类的新实例。因此,支持实体管理器对于每个线程应该是唯一的。正如 Rob H 回答的那样,不共享实体管理器是这里的关键。

但是,现在我不明白为什么在删除同步时会出现错误。


根据这个线程,@PersistenceContext 注解创建了一个线程安全的 SharedEntityManager。所以你应该能够创建一个单例 DAO。

0 投票
3 回答
5771 浏览

java - Spring DaoSupport 和@PersistanceContext EntityManager?

理解 Spring 最困难的事情之一是 Spring 支持解决同一问题的多种方法。

因此,在我的应用程序中,我使用 @PersistanceContext 注释注入了 EntityManager,例如:

这种方法是否与扩展 JpaDaoSupport(需要注入 EntityManager)兼容?对我来说,解决同一个问题似乎有两种不兼容的方法,但我想从对 Spring 有更多经验的人那里得到一些建议。

如果我不应该扩展 JpaDaoSupport,我应该如何使用 @PersistenceContext 方法构建我的 DAO?

0 投票
2 回答
2556 浏览

database - 在 VB6 中将 DAO DBEngine DataTable 的列从 DataType dbInteger 更改为 dbLong

我继承了一个遗留的 VB6 应用程序来维护,而我的 vb6 有点生锈......

我有一个 DAO 表,它有一个类型为 DAO.DataTypeEnum.dbInteger 的字段,需要将其更改为类型 DAO.DataTypeEnum.dbLong。是否有设置这种新数据类型并保留现有值的快捷 vb6 方法,或者我是否需要创建一个临时列来存储数据,然后删除并重新创建具有新数据类型的列,然后手动迁移数据?

0 投票
3 回答
708 浏览

java - 休眠多级事务

我有一些休眠代码,我希望我的代码在 1 个事务中运行让我在代码中解释

两者都 humanDao.update(he);运行branchDao.update(be);在 My GenericDAO 的事务句柄中,humanDao 和 branchDao 都继承自它。但我希望这段代码(上面写的)也能在事务中运行!!我怎样才能让 Hibernate 做到这一点?

0 投票
3 回答
1633 浏览

ms-access - Access 2007 DAO VBA 错误 3381 导致调用方法中的对象“中断”

---进一步调查后---下例中的“tblABC”必须是一个链接表(到另一个 Access 数据库)。

如果“tblABC”与代码在同一个数据库中,则不会出现问题。

你好,

我们最近升级到 Office 2007。

我们有一种方法,其中我们有一个开放的记录集 (DAO)。然后我们调用另一个执行 SQL 的 sub(下面的 UpdatingSub)。此方法有自己的错误处理程序。如果遇到错误 3381,则调用方法中的记录集将变为“未设置”,我们会收到错误 3420“对象无效或不再设置”。UpdatingSub 中的其他错误不会导致相同的问题。

此代码在 Access 2003 中运行良好。

有什么想法吗?我们正在运行 Office Access 2007 (12.0.6211.1000) SP1 MSO (12.0.6425.1000)。也许看看SP2是否可以分发?

抱歉格式化 - 不知道如何解决这个问题。

0 投票
2 回答
6515 浏览

vba - 在共享模式和独占模式之间切换 Access 数据库?

我正在开发一个需要编辑 Access 数据库中的某些对象的程序。它还运行一个子程序(长篇故事),该子程序尝试访问底层 JET 数据库,而 Access 仍然通过 ODBC 打开它。

问题是,一旦我开始使用 VBA 编辑表单对象 - 例如,使用 Application.LoadFromText - Access 会将数据库更改为独占模式。独占模式本身很好,我知道它为什么需要它。但是之后我需要能够切换回“共享”模式,以便我可以运行我的子程序。

我观察到,如果您使用 UI 在设计模式下打开表单,Access 会将数据库切换到独占模式。(您可以通过尝试从另一台计算机打开它来确认这一点。)但是当您关闭表单设计器时,Access 会立即将其切换回共享模式,这正是我所希望的。

有没有办法自己使用 VBA / COM 调用来回切换它?

我知道我可以调用 Application.CloseCurrentDatabase(),然后调用 OpenCurrentDatabase(),但这会关闭所有窗口并扰乱 UI,所以它并不理想。

0 投票
2 回答
1217 浏览

ms-access - 在 Access 2007 中访问 Field2

我正在尝试编写一个简单的小例程来通过电子邮件发送存储在 Access 2007 数据库中的附件。出于某种原因,我无法让它最简单的部分工作。

我在以下行收到一条错误消息“未定义用户定义的类型”:

现在到目前为止,我还没有访问任何 DAO 对象,但我的假设是我只需要添加相关的引用。问题是,我似乎对那个参考是什么有误解。我已经尝试过有意义的“Microsoft DAO 3.6 Object Library”,但我仍然收到相同的错误消息。然后我尝试了 3.5 个相同的,然后是 JET,然后又尝试了几个,但意义不大。

这是完整的清单,以防我错过了其他真正基本的东西。我知道它需要大量的清理工作,但我想先让它工作。

有任何想法吗?