草庐IT

hibernate-postgresql

全部标签

java - 如何强制 Hibernate 返回一个空值而不是 null?

我使用的是Oracle11GR2,当varchar2字段为空时,在空字段上执行System.out.println将在我的Eclipse控制台上显示null。我怎样才能让它显示空字符串? 最佳答案 在getter中使用这个技巧很好,但它会改变模型的预期行为。正如我在评论中引用的那样,Oracle无法区分空字符串和null。如果您确定您正在使用的所有字符串属性永远不会为null,您可以像这样在hibernate中创建一个拦截器publicclassEmptyStringInterceptorextendsEmptyIntercepto

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 - 从postgresql中批量插入的行中检索序列号

这是有效的代码:Connectionc=ds.getConnection();c.setAutoCommit(false);PreparedStatementstmt=c.prepareStatement("INSERTINTOitems(name,description)VALUES(?,?)");while(!(items=bus.take()).isEmpty()){for(Itemitem:items){stmt.setString(1,item.name);stmt.setString(2,item.description);stmt.addBatch();}stmt.exe

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