草庐IT

hibernate3

全部标签

java - Hibernate 的 createCriteria() 是否清理输入?

今天遇到一些使用Hibernate执行查询的代码。查询使用从表单提交的值。这让我很好奇这种代码是否“净化”了它的输入。publicListsearch(Stringquery){Sessionsession=this.getCurrentSession();query="%"+query+"%";Criteriacriteria=session.createCriteria(getPersistentClass());criteria.createAlias("country","a");CriterionnameCriterion=Restrictions.ilike("name",

java - 在 hsqldb 1.8.1.3 之上基于 Hibernate 的代码的单元测试不再适用于 hsqldb 2.2.9

我经常使用内存中的HSQL数据库作为测试数据库来编写依赖于数据库的代码的单元测试。最近我决定从1.8.1.3升级到2.2.9以利用2.x版本分支中添加的ROW_NUMBER()支持。似乎在某些方面,新版本比旧版本更严格。使用Hibernate(3.6.10)作为ORM,我可能会创建一个Configuration对象来创建第一个SessionFactory,使用它来填充测试数据,然后使用Configuration到被测类,它创建自己的SessionFactory来进行选择。使用hsqldb1.8.1.3,没问题。在2.2.9中,hsqldb代码中的选择block。下面是一个SSCCE演示

java - 交易不活跃 - hibernate - JPA

我有这个类专门用于通过hibernate的持久层将数据保存在数据库中。publicclassTLinkEquipementDAOImplimplementsTLinkEquipementDAO{privatestaticfinalLoglog=LogFactory.getLog(TLinkEquipementDAOImpl.class);@PersistenceContextprivateEntityManagerFactoryemf=PersistenceManager.getInstance().getEntityManagerFactory();privateEntityMana

java - org.hibernate.AnnotationException : A Foreign key refering has the wrong number of column. 应该是 2

我有上面截图中的表格类的写法如下@EntitypublicclassObject{@Idprivateintid;privateStringname;@OneToMany(mappedBy="object",fetch=FetchType.LAZY)privateListattrubuteList;}@EntitypublicclassObjectAttribute{@Idprivateintid;@Id@ManyToOne@JoinColumn(name="objectId")privateObjectobject;privateStringname;}@Entitypubliccl

java - 为什么在 Hibernate 中需要在 session.delete() 之后调用 session.flush()?

问题是下面的代码片段没有删除数据库中的记录。importorg.hibernate.Session;importorg.hibernate.SessionFactory;......voiddeleteForm(){Sessionsession=sessionFactory.openSession();FormDOformDO=newFormDO();formDO.setId(formId);session.delete(formDO);//NodeleteSQLqueryisgettingfired.但是,如果我在删除后调用session.flush(),它会完美运行。请注意,我没有

java - 如何在 Hibernate 的 native SQL 查询中转义冒号 `:`?

我有一个看起来像这样的原生SQL查询:Queryquery=session.createSQLQuery("SELECTXMLSERIALIZE(CONTENTXMLELEMENT(NAME\"ltc:DOAATLTC\",XMLATTRIBUTES('http://www.edftrading.com/Trade/Common/DoaatLTC'AS\"xmlns:ltc\",'http://www.edftrading.com/Trade/Common/DoaatLTCHourlyNomination'AS\"xmlns:ltchnom\"),XMLELEMENT(...)FROM

java - Hibernate 中的 query.uniqueResult() 与 session.load() 有什么区别?

谁能告诉我这段代码有什么区别://Thisfollowingmethodchecksifthereisanopensession//andifyes-returnsit,ifnot-opensanewsession.Sessionsession=getSession();Queryquery=session.createQuery("fromEntityewheree.id=1");Entityobject=(Entity)query.uniqueResult();还有这个:Sessionsession=getSession();Entityobject=(Entity)session

java - 如何在 hibernate 中记录失败的sql?

我正在使用spring-data-jpa构建一个SpringBoot应用程序。我知道如何记录这个问题中的所有sql。HowtoprintaquerystringwithparametervalueswhenusingHibernate但是如果我只想记录失败的sql怎么办? 最佳答案 有两种选择:使用参数值配置sql日志记录。禁用jdbc批处理并通过hibernate方式启用刷新。添加调试JDBC驱动程序,例如p6spy,它或多或少会完全按照上述描述进行操作。首先,让我们分析问题并将查询类型拆分为SELECT和INSERT/UPDAT

java - hibernate 条件中的表达式

假设我有一个带有数量字段和价格字段的持久类Item。有没有办法建立一个计算数量*价格总和的条件? 最佳答案 我认为您也可以使用SQL投影。它应该是这样的:session.createCriteria(Item.class).createAlias("item","i").setProjection(Projections.projectionList().add(Projections.groupProperty("i.id")).add(Projections.groupProperty("i.price")).add(Proje

java - 为什么 hibernate 返回一个代理对象?

我有一个调用DAO的服务方法,然后从数据库返回一个对象。从系统的许多部分调用此方法。但是,一个特定的方法是获取ObjectClass_$$_javassist_somenumber的返回类型作为类型。这是扔掉东西。我调用服务方法与其他地方完全相同,那么为什么hibernate会返回代理而不是自然对象?我知道有一些方法可以公开“代理”对象,但我觉得我不应该这样做。查询很简单hibernateTemplate.find("fromUseruwhereu.username=?",username)顺便说一句,我正在使用hibernate3.3。 最佳答案