Tag: hibernate

为什么我需要在Hibernate中进行只读操作?

为什么我需要在Hibernate中进行只读操作? 以下事务是否对db进行了locking? 从数据库获取的示例代码: Transaction tx = HibernateUtil.getCurrentSession().beginTransaction(); // why begin transaction? //readonly operation here tx.commit() // why tx.commit? I don't want to write anything 我可以使用session.close()而不是tx.commit() ?

Hibernate联盟的替代品

我必须使用Hibernate来实现联合查询吗? 我知道hibernate目前不支持联合查询,现在我看到联合的唯一方法是使用查看表。 另一个select是使用普通的jdbc,但是这样我就会失去所有的示例/条件查询的好处,以及hibernate针对表/列执行的hibernate映射validation。

如何避免使用Hibernate HQL结果的types安全警告?

例如,我有这样的查询: Query q = sess.createQuery("from Cat cat"); List cats = q.list(); 如果我试图做这样的事情,它会显示警告“types安全:types列表的expression需要未经检查的转换,以符合列表”: List<Cat> cats = q.list(); 有没有办法避免它?

如何在Hibernate 4中configuration日志来使用SLF4J

Hibernate 3.x使用slf4j进行日志logging。 Hibernate 4.x使用jboss日志logging 。 我正在编写一个使用Hibernate 4和SLF4J进行日志logging的独立应用程序。 我如何configurationHibernatelogin到SLF4J? 如果这是不可能的,我怎么configurationHibernate的日志? 日志logging的Hibernate 4.1手动部分的启动警告,它是… 完全过时。 Hibernate从4.0开始使用JBoss Logging。 当我们将这些内容迁移到开发者指南时,这将被logging。 …继续谈SLF4J,所以没用。 入门指南和开发者指南都没有谈及日志logging。 迁移指南也不是。 我已经查找了jboss日志本身的文档,但是我一直没能find任何东西。 GitHub页面是沉默的 ,JBoss的社区项目页面甚至没有列出jboss日志logging。 我想知道该项目的bug跟踪器是否可能有任何与提供文档有关的问题,但事实并非如此。 好消息是,当在一个应用服务器(如JBoss AS7)中使用Hibernate 4时,日志logging很大程度上为您处理。 但是我怎样才能configuration它在一个独立的应用程序?

hibernate和没有PK

是否有可能创build一个表(从JPA注释的Hibernate @ @Entity )不包含主键/ ID? 我知道这不是一个好主意, 一个表应该有一个主键。

JPAhibernate一对一的关系

我有一对一的关系,但是hibernatetool在生成模式时抱怨。 这是一个显示问题的例子: @Entity public class Person { @Id public int id; @OneToOne public OtherInfo otherInfo; rest of attributes … } Person与OtherInfo有一对一的关系: @Entity public class OtherInfo { @Id @OneToOne(mappedBy="otherInfo") public Person person; rest of attributes … } 人是拥有OtherInfo的一面。 OtherInfo是所有者,所以人使用mappedBy来指定Person中的属性名称“otherInfo”。 使用hibernatetool生成数据库模式时,出现以下错误: org.hibernate.MappingException: Could not determine type for: Person, at table: OtherInfo, for columns: [org.hibernate.mapping.Column(person)] at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:292) at […]

JPA / Hibernate原生查询不识别参数

我正在使用Hibernate / JPA来执行原生的PostGIS查询。 这些查询的问题是他们需要的参数不是经典的X ='value'forms。 例如,以下行会崩溃 String queryString = "select * from Cell c where ST_DWithin(c.shape, SetSRID(ST_GeomFromEWKT('POINT(:lon :lat)'),4326), 0.1)"; Query query = Cell.em().createNativeQuery(queryString, Cell.class); query.setParameter("lon", longitude); query.setParameter("lat", latitude); play.exceptions.JavaExecutionException: org.hibernate.QueryParameterException: could not locate named parameter [lon] at play.mvc.ActionInvoker.invoke(ActionInvoker.java:259) at Invocation.HTTP Request(Play!) Caused by: java.lang.IllegalArgumentException: org.hibernate.QueryParameterException: could not locate named parameter [lon] at org.hibernate.ejb.QueryImpl.setParameter(QueryImpl.java:358) 以下查询适用于: String […]

用Hibernate映射PostgreSQL数组

有任何人通过Hibernate成功地将PostgreSQL中的数值数组映射到java中的数值数组? SQL: CREATE TABLE sal_emp (name text, pay_by_quarter integer[]); INSERT INTO sal_emp VALUES ('one', '{1,2,3}'); INSERT INTO sal_emp VALUES ('two', '{4,5,6}'); INSERT INTO sal_emp VALUES ('three', '{2,4,6}'); 制图: <hibernate-mapping> <class name="SalEmp" table="sal_emp"> <id name="name" /> <property name="payByQuarter" column="pay_by_quarter" /> </class> </hibernate-mapping> 类: public class SalEmp implements Serializable{ private String name; private Integer[] payByQuarter; …// getters […]

如何从Hibernate Criteria API获取SQL(* not *用于日志logging)

有没有一种简单的方法从Hibernate Criteria中获取(将要生成的)sql? 理想情况下,我会有这样的东西: Criteria criteria = session.createCriteria(Operator.class); … build up the criteria … … and then do something like … String sql = criteria.toSql() (But this of course does not exist) 这个想法是使用sql作为一个巨大的'MINUS'查询的一部分(我需要find2个相同的模式之间的差异 – 结构相同,而不是在数据 – 和hibernate不支持的MINUS) (顺便说一句,我知道我可以检查日志文件中的SQL)

我们如何使用Hibernate对行进行计数?

例如,如果我们有一个表Books,那么我们如何计算Hibernate的书logging总数呢?