问题标签 [orm]

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 投票
8 回答
51720 浏览

.net - 您如何使用 NHibernate 进行分页?

例如,我想在 ASP.NET 网页中填充一个 gridview 控件,其中仅包含显示的行数所需的数据。NHibernate 如何支持这一点?

0 投票
3 回答
1877 浏览

.net - 任何人使用实体框架*好吧*?

有没有人真正发布了一个实体框架项目,该项目将 O/R 映射到与数据存储中的表完全不同的概念类?

我的意思是将连接 (M:M) 表折叠到其他实体中,以形成存在于业务域中但在数据存储中组织为多个表的概念类。我在 MSDN 上看到的所有示例都很少使用继承、将联结表折叠成其他实体或将查找表折叠成实体。

我很想听听或查看以下示例,这些示例支持您通常希望在业务对象上执行的所有 CRUD 操作。:

  1. 车辆表和颜色表。一种颜色可以出现在许多车辆中 (1:M)。它们形成了具有属性 Color 的概念类 UsedCar。

  2. Doctor、DoctorPatients 和 Patients 表(形成多对多)。医生有很多患者,患者可以有很多医生(M:M)。绘制出两个概念类Doctor(具有Patients 集合)和Patients(具有Doctors 集合)。

有人在实体框架中使用 CSDL 和 SSDL 看到/做过这个吗?如果 CSDL 没有实际映射到任何东西,它就不好了!

0 投票
1 回答
372 浏览

java - 你什么时候可以/应该全力以赴地使用 ORM 方法?

在我看来,引入 ORM 工具应该可以让您的架构更整洁,但为了提高效率,我发现自己有时会绕过它并迭代 JDBC 结果集。这会导致不协调的工件缠结,而不是更清晰的架构。

这是因为我在无效的上下文中应用了该工具,还是比这更深?

你什么时候可以/应该全力以赴地使用 ORM 方法?

任何见解将不胜感激。


一点背景:

在我的环境中,我有大约 50 台客户端计算机和 1 台相当强大的 SQL Server。

我有一个桌面应用程序,其中所有 50 个客户端一直在访问数据。

该项目的数据模型出于各种原因(包括清晰度、效率等)经历了多次重组。

我的数据模型的历史

  1. JDBC直接调用
  2. DAO + POJO 没有 Pojos 之间的关系(基本上包装了 JDBC)。
  3. 添加了实现延迟加载的 POJO 之间的关系,但只是隐藏了 DAO 间调用
  4. 在看到它使数据访问变得多么“简单”(它使 POJO 之间的关系变得微不足道)并且因为它可以减少与许多相关实体一起工作时到数据库的往返次数后,跳上了 Hibernate 的潮流。
  5. 因为它是一个桌面应用程序,让 Sessions 长期保持打开状态是一场噩梦,所以它最终导致了很多问题
  6. 回到部分 DAO/Hibernate 方法,允许我在 DAO 幕后进行直接 JDBC 调用,同时使用 Hibernate。
0 投票
3 回答
953 浏览

orm - 老式 SQL DB 访问与 ORM(NHibernate、EF 等)。谁赢?

我已经成功地编写了自己的 SQL 访问代码,并结合了存储过程和参数化查询以及我编写的一个小包装库,以最大限度地减少 ADO.NET 垃圾。过去,这一切对我来说都非常有效,而且我的工作效率很高。

我正在着手一个新项目——我应该把我的旧学校的东西抛在脑后,深入研究一个基于 ORM 的解决方案吗?(我知道 NHibernate 和 EF 之间存在巨大的高概念差异——我不想在这里讨论。为了争论,我们甚至将 LINQ 与老式替代方案混为一谈。)我正在寻找根据我所知道的(并且非常了解),就 ORM 类型的实际应用提出建议。

老式 ADO.NET 代码还是 ORM?我确定有一条曲线——这条曲线是否有让事情变得有价值的投资回报率?我很焦虑并愿意学习,但确实有截止日期。

0 投票
8 回答
5345 浏览

java - 如何升级使用 ORM 工具构建的数据库模式?

我正在寻找使用 ORM 工具(如 JPOX 或 Hibernate)升级数据库模式的通用解决方案。你如何在你的项目中做到这一点?

我想到的第一个解决方案是创建自己的数据库升级机制,使用 SQL 脚本完成所有工作。但在这种情况下,我必须记住每次更新对象映射时都要创建新脚本。而且我仍然必须处理低级 SQL 查询,而不仅仅是定义映射并允许 ORM 工具完成所有工作......

所以问题是如何正确地做到这一点。也许有些工具可以简化这个任务(例如,我听说 Rails 内置了这样的机制),如果是这样,请帮助我决定为我的下一个 Java 项目选择哪个 ORM 工具。

0 投票
1 回答
172 浏览

.net - 使用 Flex、.NET 和 DBMS 寻找更好的端到端通信

我们正在审查我们在工作中的一些实践——我们现在正在研究的具体事情是使用基于 Flex 的客户端和 .NET Web 服务进行 Comms 的最佳方法。

我们的典型方法是首先根据需求对交互进行建模,模拟一些 XML 消息并对其进行完整性检查,将它们转换为 XSD,最后在每一端构建与 XML 进行序列化的类。

这工作正常,直到我们访问数据库,然后像 Join Tables 这样的东西开始破坏我们所做的所有工作,以简化客户端。

我们已经尝试使用 LINQ to SQL 和其他 OR 映射器来解决这个问题,但是它们都没有真正解决问题而不引入更严重的问题。

所以,真正的问题是:如果不将 RDBMS 视为简单的对象存储,是否有更好的方法来处理复杂的数据需求,而无需编写大量的转换代码?

我想我正在寻找的灵丹妙药是知道什么是 Join 表以及如何处理它,并且仍然允许我为 Flex 生成“不错的”序列化 XML 并保留强大的 .NET 类型。

如果它可以分析每种方法所需的 SQL,生成存储过程并使用它们,则可以加分。但这可能要求太多了:)

注意重新“加入表”:

我们对此的定义是你有一个表,它有两个或多个外键作为它自己的主键。

例如:

当 Flex 客户端获得一个 Photo 对象时,它可能还会获得一个包含所有标签的列表。所以,这可能看起来像这样:

相反,我见过的 OR 工具给了我们:

0 投票
12 回答
28764 浏览

.net - 提高 NHibernate 性能的最佳方法是什么?

我有一个使用 NHibernate 作为其 ORM 的应用程序,有时由于它如何访问数据而遇到性能问题。可以做哪些事情来提高 NHibernate 的性能?(请限制每个答案推荐一个)

0 投票
6 回答
5263 浏览

nhibernate - 选择 ORM 时,LINQ to SQL 或 LINQ to Entities 是否比 NHibernate 更好?

我发现使用 NHibernate 甚至 Castle 比使用 Linq to Entities 或 linq to SQL 可以做更多的事情。

我疯了吗?

0 投票
4 回答
2901 浏览

django - Django中的多连接查询

使用 ORM 和 QuerySet API 在 Django 中进行多连接查询的最佳和/或最快方法是什么?

0 投票
2 回答
21019 浏览

java - JPA 多事务管理器

我有一个 applicationContext.xml 文件,它在 Spring 中间件自定义应用程序中配置了两个 org.springframework.orm.jpa.JpaTransactionManager (每个都有自己的持久性单元,不同的数据库)。

我想使用基于注释的事务(@Transactional),而不是搞乱 TransactionStatus 提交、保存和回滚。

一位同事提到,当有多个事务管理器时,即使上下文文件设置正确(引用转到正确的持久性单元),这样做也会感到困惑。有人见过问题吗?


在您的配置中,您会有两个事务管理器吗?你会有 txManager1 和 txManager2 吗?

这就是我在 JPA 中所拥有的,两个不同的 Spring bean 是事务管理器。