Tag: orm

session.flush()在Hibernate中有什么用处

当我们更新logging时,我们可以在Hibernate中使用session.flush() 。 什么是flush()的需要?

ORM和ODM有什么区别?

我试图找出ORM和ODM之间有什么区别,据我了解这个概念,ORM(Object Relational Mapper)映射了数据之间的关系,ODM(对象文档映射器)处理文档。 我正确地认为mySQL是ORM的一个例子,MongoDB是ODM的一个例子吗? 我相信你可以看到,我不太了解这个概念的理论。 有人能澄清两者之间的分歧吗?

JPA中的@Basic(可选= false)vs @Column(nullable = false)

JPA持久性中的@Basic(optional = false)和@Column(nullable = false)什么区别?

为什么要使用ORM?

如果你要激励你为什么要使用ORM来pipe理/客户的“优点”,原因是什么? 尝试并保持每个答案的一个原因,以便我们可以看到被投票的最佳理由

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] 我正在使用创build会话 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() ,还是没有运气。 这是第一次我得到会话对象时,用户请求来了,所以我得到为什么说对象是在会议中存在。 有什么build议么?

独特的字段,允许Django中的空值

我有模型Foo有栏杆。 bar字段应该是唯一的,但是允许有空值,这意味着如果bar字段为null ,我想允许多个logging,但是如果它不为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) ) 当使用pipe理界面创build超过1个foo对象,其中bar是空的它给了我一个错误:“Foo与这个酒吧已经存在。” 但是当我插入数据库(PostgreSQL)时: insert into appl_foo ("name", bar) values ('test1', null) insert into […]

Spring Data-JPA与JPA:有什么区别?

我对Spring Data-JPA和JPA之间的区别有些困惑。 我知道关于JPA,它是使用stream行的ORM技术将Java对象持久化到关系数据库的规范。也就是说,JPA提供了接口和其他ORM技术,实现了被称为JPA提供者的接口,例如Hibernate。 现在到底什么是Spring Data JPA。 Spring Data JPA是否通过JPA添加了一些更多的function(接口),并且仍然只是指定的,或者它也是JPA提供者? 我看到Spring Data JPA在存储库(DAO层:如果我没有错的话)工作。 所以我的意思是使用“Spring Data JPA + Hibernate”或仅使用“Hibernate”指导是如何不同?

我需要persistence.xml中的<class>元素吗?

我有非常简单的persistance.xml文件: <?xml version="1.0" encoding="UTF-8"?> <persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"> <persistence-unit name="eventractor" transaction-type="RESOURCE_LOCAL"> <class>pl.michalmech.eventractor.domain.User</class> <class>pl.michalmech.eventractor.domain.Address</class> <class>pl.michalmech.eventractor.domain.City</class> <class>pl.michalmech.eventractor.domain.Country</class> <properties> <property name="hibernate.hbm2ddl.auto" value="validate" /> <property name="hibernate.show_sql" value="true" /> </properties> </persistence-unit> </persistence> 它的工作。 但是,当我删除<class>元素应用程序没有看到实体(所有的类都用@Entity注释)。 有没有自动机制来扫描@Entity类?

Hibernate的注释 – 哪个更好,是字段还是属性?

这个问题与Hibernate Annotation Placement Question有些相关。 但是我想知道哪个更好 ? 通过属性访问或通过字段访问? 每个的优点和缺点是什么?

小马(ORM)如何操作?

小马ORM做转换生成器expression式到SQL的好方法。 例: >>> select(p for p in Person if p.name.startswith('Paul')) .order_by(Person.name)[:2] SELECT "p"."id", "p"."name", "p"."age" FROM "Person" "p" WHERE "p"."name" LIKE "Paul%" ORDER BY "p"."name" LIMIT 2 [Person[3], Person[1]] >>> 我知道Python有很棒的内省和元编程内置,但是这个库如何能够在不进行预处理的情况下转换生成器expression式? 它看起来像魔术。 [更新] Blender写道: 这是你之后的文件 。 似乎用一些内省魔法来重build发生器。 我不确定它是否支持Python的100%的语法,但这很酷。 – 搅拌机 我以为他们正在探索一些来自发生器expression式协议的特性,但看着这个文件,并看到了ast模块…不,他们没有在飞行中检查程序源,是吗? 令人兴奋… @BrenBarn:如果我试图在select函数调用之外调用生成器,结果是: >>> x = (p for p in Person if p.age > 20) […]