Questions tagged «orm»

对象关系映射(ORM)是一种用于将面向对象的系统映射到关系数据库的技术。使用其他标签指示编程语言([java],[sql],[python]),数据库系统([postgreSQL],内容管理系统([django]),框架([flask],[spring],[laravel) ]),应用程序环境([android],[node.js])和其他可用于搜索并具有观察者的标签。

10
在Django中允许为空的唯一字段
我有模型Foo,它具有栏杆。bar字段应该是唯一的,但允许为空,这意味着如果bar字段为null,我想允许多个记录,但如果不是,null则值必须是唯一的。 这是我的模型: class Foo(models.Model): name = models.CharField(max_length=40) bar = models.CharField(max_length=40, unique=True, blank=True, null=True, default=None) 这是该表的相应SQL: CREATE TABLE appl_foo ( id serial NOT NULL, "name" character varying(40) NOT NULL, bar character varying(40), CONSTRAINT appl_foo_pkey PRIMARY KEY (id), CONSTRAINT appl_foo_bar_key UNIQUE (bar) ) 当使用管理界面在bar为null的情况下创建多个1个foo对象时,它给我一个错误:“此Bar的Foo已经存在。” 但是,当我插入数据库(PostgreSQL)时: insert into appl_foo ("name", bar) values ('test1', …

4
单向和双向JPA和Hibernate关联之间有什么区别?
单向和双向关联有什么区别? 由于在db中生成的表都是相同的,所以我发现的唯一区别是双向关联的每一侧都有一个引用,而单向则没有。 这是单向关联 public class User { private int id; private String name; @ManyToOne @JoinColumn( name = "groupId") private Group group; } public class Group { private int id; private String name; } 双向关联 public class User { private int id; private String name; @ManyToOne @JoinColumn( name = "groupId") private …


3
SQLAlchemy:引擎,连接和会话的区别
我使用SQLAlchemy并至少有三个实体:engine,session并且connection,其中有execute方法,所以如果我如想选择所有记录table我能做到这一点 engine.execute(select([table])).fetchall() 还有这个 connection.execute(select([table])).fetchall() 甚至这个 session.execute(select([table])).fetchall() -结果将是相同的。 据我了解,如果有人使用engine.execute它connection,它会创建,打开session(Alchemy会为您处理)并执行查询。但是,执行此任务的这三种方式之间是否存在全局差异?

11
JPA CascadeType.ALL不会删除孤儿
我在使用带有以下映射的JPA删除孤立节点时遇到问题 @OneToMany (cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "owner") private List<Bikes> bikes; 我遇到了孤立角色挂在数据库周围的问题。 我可以使用org.hibernate.annotations.Cascade特定于注释的Hibernate标记,但是显然我不想将解决方案绑定到Hibernate实现中。 编辑:似乎JPA 2.0将包括对此的支持。
132 java  hibernate  orm  jpa  jpa-2.0 

10
使用SQLAlchemy ORM批量插入
有什么方法可以让SQLAlchemy进行批量插入,而不是插入每个对象。即 在做: INSERT INTO `foo` (`bar`) VALUES (1), (2), (3) 而不是: INSERT INTO `foo` (`bar`) VALUES (1) INSERT INTO `foo` (`bar`) VALUES (2) INSERT INTO `foo` (`bar`) VALUES (3) 我刚刚将一些代码转换为使用sqlalchemy而不是原始sql,尽管现在使用它起来要好得多,但现在似乎要慢一些(最多10倍),我想知道这是否是原因。 也许我可以更有效地使用会话来改善这种情况。目前,我已经添加了一些东西,autoCommit=False并做了一个session.commit()。尽管如果在其他地方更改了数据库,这似乎会使数据过时,例如,即使我执行新查询,我仍然可以返回旧结果? 谢谢你的帮助!

2
ORM映射中的“拥有方”是什么?
拥有方到底是什么意思?一些映射示例(一对多,一对一,多对一)的解释是什么? 以下文本摘自Java EE 6文档中@OneToOne的描述。您可以在其中看到概念拥有方面。 定义与具有一对一多重性的另一个实体的单值关联。通常不必显式指定关联的目标实体,因为通常可以从被引用对象的类型中推断出该目标实体。如果关系是双向的,则非拥有方必须使用OneToOne批注中的mappingBy元素来指定拥有方的关系字段或属性。
128 java  hibernate  orm  jpa  mapping 

7
如何使用Dapper映射嵌套对象列表
我目前正在使用Entity Framework进行数据库访问,但想看看Dapper。我有这样的课程: public class Course{ public string Title{get;set;} public IList<Location> Locations {get;set;} ... } public class Location{ public string Name {get;set;} ... } 因此,可以在多个位置教授一门课程。Entity Framework为我执行了映射,因此我的Course对象中填充了位置列表。我将如何使用Dapper做到这一点,甚至有可能还是我必须在几个查询步骤中做到这一点?
127 orm  dapper 

10
PHP ORM:教义与Propel
我正在用symfony开始一个新项目,该项目可以很容易地与Doctrine和Propel集成在一起,但是我当然需要做出选择...。我想知道是否有更多有经验的人在使用这些工具时有普遍的利弊?这两个中的任何一个? 非常感谢。 编辑: 感谢所有的答复,有用的东西。这个问题没有真正正确的答案,因此,我只将获得最多票数的人标记为已批准。
126 php  orm  symfony1  doctrine  propel 

8
如何使用Laravel和Eloquent在两个日期之间查询?
我正在尝试创建一个报告页面,以显示从特定日期到特定日期的报告。这是我当前的代码: $now = date('Y-m-d'); $reservations = Reservation::where('reservation_from', $now)->get(); 这在普通SQL中的作用是select * from table where reservation_from = $now。 我在这里有此查询,但我不知道如何将其转换为雄辩的查询。 SELECT * FROM table WHERE reservation_from BETWEEN '$from' AND '$to 如何将上面的代码转换为雄辩的查询?先感谢您。
122 php  laravel  laravel-5  orm 

4
在JPA和Hibernate中,persist()和merge()之间有什么区别?
Hibernate中的persist()和merge()有什么区别? persist() 可以创建UPDATE&INSERT查询,例如: SessionFactory sef = cfg.buildSessionFactory(); Session session = sef.openSession(); A a=new A(); session.persist(a); a.setName("Mario"); session.flush(); 在这种情况下,将生成查询,如下所示: Hibernate: insert into A (NAME, ID) values (?, ?) Hibernate: update A set NAME=? where ID=? 因此persist()方法可以生成一个插入和一个更新。 现在merge(): SessionFactory sef = cfg.buildSessionFactory(); Session session = sef.openSession(); Singer singer = new Singer(); singer.setName("Luciano …
119 java  hibernate  jpa  orm  entity 


6
使用SQLAlchemy ORM高效地更新数据库
我正在启动一个新应用程序,并考虑使用ORM,尤其是SQLAlchemy。 假设我的数据库中有一列“ foo”,我想增加它。在直通sqlite中,这很容易: db = sqlite3.connect('mydata.sqlitedb') cur = db.cursor() cur.execute('update table stuff set foo = foo + 1') 我弄清楚了SQLAlchemy SQL-builder等效项: engine = sqlalchemy.create_engine('sqlite:///mydata.sqlitedb') md = sqlalchemy.MetaData(engine) table = sqlalchemy.Table('stuff', md, autoload=True) upd = table.update(values={table.c.foo:table.c.foo+1}) engine.execute(upd) 这稍微慢一点,但是没有太多。 这是我对SQLAlchemy ORM方法的最佳猜测: # snip definition of Stuff class made using declarative_base # snip creation …
116 python  orm  sqlalchemy 

10
实体框架4与NHibernate [关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 5年前关闭。 改善这个问题 在网络上(以及在stackoverflow上)已经谈论了很多关于Entity Framework第一版的问题,很明显,当我们已经有了更好的替代方案(如NHibernate)时,这不是一个好选择。但是我找不到Entity Framework 4和NHibernate的很好比较。可以说,今天NHibernate是所有.NET ORM的领导者,但是我们可以期望Entity Framework 4取代NHibernate。我认为,如果Microsoft确实在EF4中注入了非常好的功能,则它可以与NHibernate竞争,因为它具有Visual Studio集成,易于使用并且在大多数商店中总是优先考虑MS产品。

30
Hibernate错误:org.hibernate.NonUniqueObjectException:具有相同标识符值的另一个对象已与会话关联
我有两个用户对象,而在尝试使用以下方法保存对象时 session.save(userObj); 我收到以下错误: Caused by: org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [com.pojo.rtrequests.User#com.pojo.rtrequests.User@d079b40b] 我正在使用创建会话 BaseHibernateDAO dao = new BaseHibernateDAO(); rtsession = dao.getSession(userData.getRegion(), BaseHibernateDAO.RTREQUESTS_DATABASE_NAME); rttrans = rtsession.beginTransaction(); rttrans.begin(); rtsession.save(userObj1); rtsession.save(userObj2); rtsession.flush(); rttrans.commit(); rtsession.close(); // in finally block 我还尝试session.clear()过保存之前的操作,但仍然没有运气。 这是第一次,当用户请求到来时,我得到了会话对象,所以我得到了为什么要说该对象存在于会话中的信息。 有什么建议?
114 java  hibernate  orm 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.