Tag: orm

hibernateexception:org.hibernate.AnnotationException:没有为实体指定标识符:com..domain.idea.MAE_MFEView

为什么我得到这个exception? package com.domain.idea; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.JoinColumn; import javax.persistence.OneToOne; import javax.persistence.Table; import org.hibernate.annotations.AccessType; /** * object model for the view [InvestmentReturn].[vMAE_MFE] */ @Entity @Table(name="vMAE_MFE", schema="InvestmentReturn") @AccessType("field") public class MAE_MFEView { /** * trade property is a SuggestdTradeRecommendation object */ @OneToOne(fetch = FetchType.LAZY , cascade = { CascadeType.PERSIST }) @JoinColumn(name = "suggestedTradeRecommendationID") […]

entity framework4与NHibernate

很多人已经在networking上讨论过Entity Framework的第一个版本(也是在stackoverflow上),很显然,当我们已经有了像NHibernate这样更好的select的时候,这不是一个好的select。 但是我找不到entity framework4和NHibernate的比较。 我们可以说今天NHibernate是所有.NET ORM中的领导者,但我们可以期望Entity Framework 4从这个位置取代NHibernate。 我认为,如果微软真的在EF4中注入了非常好的function,它可以给NHibernate带来很好的竞争力,因为它具有Visual Studio集成,更易于使用,并且在大多数商店中始终给予MS产品优先select。

NHibernate与LINQ to SQL

作为一个在现实世界的项目中没有使用任何一种技术的人,我想知道有没有人知道这两者是如何相互补充的,以及它们的function有多重叠?

使用Dapper执行插入和更新

我对使用Dapper感兴趣 – 但从我能告诉它只支持查询和执行。 我没有看到Dapper包含插入和更新对象的方法。 鉴于我们的项目(大多数项目?)需要插入和更新,与Dapper一起进行插入和更新的最佳做法是什么? 我们最好不用诉诸参数构build的ADO.NET方法等。 我现在想到的最好的答案是使用LinqToSQL进行插入和更新。 有更好的答案吗?

如何在JPA中保留List <String>types的属性?

获取带有Listtypes字段的实体的最明智的方法是什么? Command.java package persistlistofstring; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import javax.persistence.Basic; import javax.persistence.Entity; import javax.persistence.EntityManager; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Persistence; @Entity public class Command implements Serializable { @Id @GeneratedValue(strategy = GenerationType.AUTO) Long id; @Basic List<String> arguments = new ArrayList<String>(); public static void main(String[] args) { Command command = new Command(); EntityManager […]

PHP的ORMs:主义与推动

我正在开发一个新的symfony项目,这个项目很容易与Doctrine和Propel整合在一起,但是我当然需要做出一个select……我想知道更多有经验的人是否有一般的优点和/或缺点这两个? 非常感谢。 编辑:感谢所有的答复,有用的东西。 这个问题没有真正正确的答案,所以我只是把获得最受欢迎的选票标记为已经批准。

为什么我们需要实体对象?

对于目前公认的企业应用程序devise模式的优点,我真的需要看到一些诚实而深思熟虑的辩论。 我不相信实体对象应该存在。 通过实体对象,我指的是我们倾向于为我们的应用程序构build的典型事物,如“人员”,“账户”,“订单”等。 我目前的devise理念是这样的: 所有数据库访问都必须通过存储过程完成。 无论何时需要数据,调用存储过程并遍历SqlDataReader或DataTable中的行 (注意:我也用Java EE构build了企业应用程序,请将java代码replace为我的.NET示例) 我不是反OO。 我为了不同的目的写了大量的类,而不是实体。 我承认,我写的很大一部分类是静态辅助类。 我不是在玩玩具。 我正在谈论的是跨多台机器部署的大量大量事务性应用程序。 Web应用程序,Windows服务,Web服务,B2C交互,你的名字。 我使用了OR映射器。 我写了几个。 我已经使用了Java EE堆栈,CSLA和一些其他的等价物。 我不仅使用它们,而且在生产环境中积极开发和维护这些应用程序。 我得出了一个经过testing的结论,即实体对象正在阻碍我们,没有它们,我们的生活将变得如此简单。 考虑一下这个简单的例子:你得到了一个关于你的应用程序中某个页面的支持调用不能正常工作,也许其中一个字段没有被保持。 使用我的模型,分配到查找问题的开发人员只打开3个文件 。 一个ASPX,一个ASPX.CS和一个带有存储过程的SQL文件。 这个问题可能是存储过程调用中缺less的参数,需要花费几分钟的时间来解决。 但是对于任何实体模型,您总是会启动debugging器,开始逐步执​​行代码,最终可能会在Visual Studio中打开15-20个文件。 当你下到堆栈底部时,你忘记了开始的地方。 我们一次只能把这么多东西留在脑海里。 软件非常复杂,无需添加任何不必要的图层。 开发的复杂性和故障排除只是我抱怨的一个方面。 现在我们来谈谈可扩展性。 开发人员是否意识到,每次编写或修改任何与数据库交互的代码时,他们都需要对数据库的确切影响进行深入的分析。 而不仅仅是开发副本,我的意思是生产的模仿,所以你可以看到,你现在需要的对象的额外的列只是使当前的查询计划失效,并在1秒内运行的报告现在需要2分钟,只是因为你添加了一列到select列表? 事实certificate,你现在需要的索引是如此之大,DBA将不得不修改你的文件的物理布局? 如果让人们从抽象的物理数据存储区离得太远,他们将对需要扩展的应用程序造成严重破坏。 我不是一个狂热者。 我可以相信,如果我错了,也许我是,因为有这样一个强大的推动LINQ的SQL,ADO.NET的EF,Hibernate的,Java EE的等请考虑通过您的回应,如果我失去了一些东西真的想知道这是什么,为什么我应该改变我的想法。 [编辑] 看起来这个问题突然激活了,所以现在我们有了新的评论function,我直接评论了几个答案。 感谢您的回复,我认为这是一个健康的讨论。 我应该更清楚地说我正在谈论企业应用程序。 我真的不能评论某人在桌面上运行的游戏或移动应用程序。 有一件事我不得不放在这里,回答几个类似的答案:正交性和关注点的分离经常被引用为实体/ ORM的理由。 对我而言,存储过程是我能想到的关注点分离的最好例子。 如果你不允许所有其他的访问数据库,而不是通过存储过程,那么理论上可以重新devise你的整个数据模型,而不会破坏任何代码,只要你维护存储过程的input和输出即可。 他们是合同编程的完美例子(只要你避免“select*”并logging结果集)。 问一个已经在这个行业工作了很长时间的人,他曾经用过很长时间的应用程序:在数据库已经存在的时候,有多less应用程序和UI层来了? 当有4个或5个不同的持久层生成SQL来获取数据时,调整和重构数据库有多困难? 你不能改变任何东西! ORM或任何生成SQL的代码都会locking您的数据库 。

Django的查询 – id和pk

在编写Django查询时,可以同时使用id / pk作为查询参数。 Object.objects.get(id=1) Object.objects.get(pk=1) 根据django的文档,我知道pk代表主键,只是一个捷径。 但是,不清楚何时应该使用id或pk。

使用固定值在JPA映射枚举?

我正在寻找使用JPA映射枚举的不同方法。 我特别想设置每个枚举项的整数值并只保存整数值。 @Entity @Table(name = "AUTHORITY_") public class Authority implements Serializable { public enum Right { READ(100), WRITE(200), EDITOR (300); private int value; Right(int value) { this.value = value; } public int getValue() { return value; } }; @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "AUTHORITY_ID") private Long id; // the enum to map : private […]

有没有办法用Dapper调用存储过程?

Dapper Micro ORM的结果给我留下了非常深刻的印象。 我正在考虑为我的新项目,但我有一个担心,有些时候我的项目需要有存储过程,我有很多在网上search,但没有发现任何存储过程。 那么有没有什么办法让Dapper能够使用存储过程呢? 请让我知道如果有可能,否则我必须按照我的方式扩展它。