Tag: hibernate

你如何做HQL限制查询?

在Hibernate 3中,是否有办法在HQL中完成以下MySQL限制的等价物? select * from a_table order by a_table_column desc limit 0, 20; 如果可能,我不想使用setMaxResults。 这在Hibernate / HQL的旧版本中是绝对可能的,但似乎已经消失了。

hibernate不能同时取多个行李

Hibernate在SessionFactory创build期间抛出这个exception: org.hibernate.loader.MultipleBagFetchException:不能同时获取多个包 这是我的testing用例: Parent.java @Entity public Parent { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private Long id; @OneToMany(mappedBy="parent", fetch=FetchType.EAGER) // @IndexColumn(name="INDEX_COL") if I had this the problem solve but I retrieve more children than I have, one child is null. private List<Child> children; } Child.java @Entity public Child { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private Long id; @ManyToOne private Parent parent; } […]

Hibernate中不同的保存方法有什么区别?

Hibernate有一些方法,以这种或那种方式把你的对象放到数据库中。 它们之间有什么区别,什么时候使用哪个,为什么不存在一个知道何时使用什么的智能方法? 我到目前为止确定的方法是: 保存() 更新() saveOrUpdate()方法 saveOrUpdateCopy() 合并() 坚持()

做一对一关系懒

在这个应用程序中,我们正在开发,我们注意到一个看法特别慢。 我对该视图进行了剖析,并注意到有一个由hibernate执行的查询,即使数据库中只有两个对象要获取,也需要10秒。 所有OneToMany和ManyToMany关系都是懒惰的,所以这不是问题。 在检查正在执行的实际SQL时,我注意到查询中有超过80个连接。 进一步检查问题,我注意到问题是由OneToOne和ManyToOne实体类之间的深层次关系造成的。 所以,我想,我只是让他们偷懒,这应该解决问题。 但注释@OneToOne(fetch=FetchType.LAZY)或@ManyToOne(fetch=FetchType.LAZY)似乎不工作。 要么我得到一个exception,或者他们实际上并没有被代理对象取代,因此懒惰。 任何想法,我将如何得到这个工作? 请注意,我不使用persistence.xml来定义关系或configuration细节,一切都在java代码中完成。

什么是Hi / Loalgorithm?

什么是Hi / Loalgorithm? 我在NHibernate文档中find了这个(这是一个生成唯一键的方法,第5.1.4.2节),但是我还没有find一个很好的解释。 我知道Nhibernate处理它,我不需要知道里面,但我只是好奇。

Hibernate显示真正的SQL

如果我设置 <property name="show_sql">true</property> 在我的控制台的hibernate.cfg.xmlconfiguration文件中,我可以看到SQL。 但这不是真正的 SQL …我可以看到将直接传递到数据库的SQL代码吗? 例: 我懂了 select this_.code from true.employee this_ where this_.code=? 我可以看吗 select employee.code from employee where employee.code=12 真正的 SQL?

JPA JoinColumn vs mappedBy

有什么区别: @Entity public class Company { @OneToMany(cascade = CascadeType.ALL , fetch = FetchType.LAZY) @JoinColumn(name = "companyIdRef", referencedColumnName = "companyId") private List<Branch> branches; … } 和 @Entity public class Company { @OneToMany(cascade = CascadeType.ALL , fetch = FetchType.LAZY, mappedBy = "companyIdRef") private List<Branch> branches; … }

Hibernate hbm2ddl.auto可能的值和他们做什么?

我真的想知道更多关于更新,导出和值可以给hibernate.hbm2ddl.auto 我需要知道何时使用更新,什么时候不使用? 还有什么替代方法? 这些是可能发生在DB上的变化: 新表格 旧表中的新列 列删除 数据types的列已更改 一个列的types改变了它的属性 表已经被删除 列的值已更改 在每种情况下,最好的解决scheme是什么?

如何映射复合键与休眠?

在这段代码中,如何为复合键生成一个Java类(如何在hibernate中复合键): create table Time ( levelStation int(15) not null, src varchar(100) not null, dst varchar(100) not null, distance int(15) not null, price int(15) not null, confPathID int(15) not null, constraint ConfPath_fk foreign key(confPathID) references ConfPath(confPathID), primary key (levelStation, confPathID) )ENGINE=InnoDB DEFAULT CHARSET=utf8;

休眠:hbm2ddl.auto =生产中更新?

运行配置了hbm2ddl.auto=update Hibernate应用程序来更新生产环境中的数据库模式可以吗?