草庐IT

java - 如何从标准中删除标准?

例如,如果我做类似的事情:Criteriac=session.createCriteria(Book.class).add(Expression.ge("release",reDate);.add(Expression.ge("price",price);.addOrder(Order.asc("date")).setFirstResult(0).setMaxResults(10);c.list();如何使用相同的条件实例,但删除(例如)第二个条件?我正在尝试构建一个动态查询,我想让用户在其中删除过滤器,而后端不必从头开始重建条件。谢谢 最佳答案

java - JPA:数据库生成的列

我遇到了Hibernate和JPA的问题。我的要求是列CreatedDTTM和LastUPDATEDDTTM应该在数据库级别填充。我试过跟随但没有用。我的列设置为NOTNULL。我收到“无法将Null插入LastUpdatedDttm”异常。任何指导表示赞赏。@Column(name="LAST_UPDATED_DTTM",insertable=false,updatable=false,columnDefinition="DatedefaultSYSDATE")@org.hibernate.annotations.Generated(value=GenerationTime.INSE

java - JPA 和 toplink create-table 如果它们尚不存在?

看起来jpa是让我问了很多问题的东西。添加了这个我的JPA应用程序总是在运行时创建表,这会在表已经存在的情况下导致异常。我希望JPA检查表是否已经存在,如果不存在则创建它们,但是我找不到执行此操作的上述属性的值。因此,如果我只是将其关闭,是否有办法在某个时候手动告诉JPA创建所有表?更新这里是我得到的异常InternalException:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:Table'tags'alreadyexistsErrorCode:1050Call:CREATETABLEtags(IDBIGINT

java - 控制 Hibernate EnumType.STRING 属性的排序顺序

目前,我的项目使用@Enumerated(EnumType.ORDINAL),所以当我按此列排序时,它是根据枚举中的顺序排序的,这工作正常。但我需要向enum添加一些额外的值,这些值需要插入到枚举值列表的不同位置,不能只添加到底部以保持正确的排序顺序。如果我这样做,我的数据库就会乱七八糟。我将不得不编写一些脚本来将所有这些序数值转换为正确的新序数。有可能以后必须添加更多状态。由于我必须修复数据库中的所有数据,因此我希望只需执行一次,因为这将是一项艰巨的任务。所以我正在考虑切换到EnumType.STRING,这样就不必再次重新映射数据库中的序数值。但是如果我这样做,那么我该如何正确排序

java - Hibernate 多对一外键默认值 0

我有一个表,其中父对象具有可选的多对一关系。问题是该表设置为默认fkey列为0。选择时,使用fetch="join"等——fkey上的默认值0用于反复尝试从另一个表中选择ID0。当然这不存在,但是我如何告诉Hibernate将值0视为与NULL相同——在获取不存在的关系时不循环20多次? 最佳答案 有两种方法可以做到这一点,一种在性能方面会变得丑陋,另一种是痛苦和尴尬的。潜在丑陋的方式是在ToOne端完成的。使用HibernateAnnotations它将是:@EntitypublicclassFoo{...@ManyToOne@J

java - Hibernate,自动持久化依赖对象

我是Hibernate的新手,一直在尝试确定它能为您做什么以及它需要您做什么。一个大的对象正在处理一个对象,该对象具有数据库中尚不存在的依赖项。例如,我有一个Project对象,其中包含接受Manufacturer对象作为其值的Manufacturer字段。在数据库中,我有一个带有mfr_id列的产品表,该列是对制造商表的引用(一种相当典型的单向一对多关系)。如果分配给产品对象的制造商与数据库中已有的制造商相关,则没有问题。但是,当我尝试保存或更新引用尚未保留的制造商的对象时,操作失败并出现异常。Exceptioninthread"Application"org.hibernate.T

java - 从 Hibernate 3 迁移到 4 会减慢启动速度

我们正在尝试将我们的项目从hibernate3迁移到hibernate4。一切正常,但问题是启动。我们不使用JPA,我们使用带有xml文件和映射文件的直接hibernate。com.informix.jdbc.IfxDriverjdbc:informix-sqli://xxx:xxx/xxx:INFORMIXSERVER=xxxxxxxxxorg.hibernate.dialect.InformixDialecttruefalsedev.xml属性generated.mappingFile是一个自己的属性。启动时将加载文件(dev.xml)。该文件如下所示:...我们减少了这篇文章中的

java - HQL 查询是否总是命中数据库并获得结果?

我正在经历hibernate以及何时使用Criteria与HQL的情况,我的理解是使用Hibernate,每次我们通过Criteria或查询数据库时>HQL在这两种情况下,hibernate都会获取结果集并放入内存中,然后当我们再次调用该查询时,将从内存中获取数据而不是访问该数据库,我的理解是否正确?您还可以从下面提到的问题的评论中看到,有人建议HibernateCriteria将从session中获取数据,而HQL将始终访问并访问数据库,因此对HQL查询的任何多次调用都将访问并访问数据库,并且如果是这种情况,那么HQL会导致比解决问题更多的问题。请就此提出建议,因为我对这种情况有点困

java - 如何强制 Hibernate 3.3 或 3.5 使用 CGLib 而不是 Javassist?

是否仍然可以强制Hibernate3.3或3.5使用CGLib而不是Javassist?在我的属性文件中,我设置了hibernate.bytecode.provider=cglib但这好像不行。有什么想法吗? 最佳答案 似乎有些人没有正确阅读我的回答,所以我会重新措辞:您的hibernate.properties看起来是正确的,该属性定义明确,它应该可以工作。所以,很抱歉这个问题,但是CGlib在类路径上吗?更新:刚刚测试并且对我有效。这是我在初始化时得到的输出:15[main]INFOorg.hibernate.cfg.Envir

java - 使用逻辑 AND 处理 hibernate 多个条件

到目前为止,我一直在处理一个具有2个属性的案例,其中包含和作为逻辑运算符,所以我像这样使用LogicalExpressionCriterioneqRef=Restrictions.eq("referenceID",referenceId);CriterioneqType=Restrictions.eq("verificationType",type);LogicalExpressionand=Restrictions.and(eqRef,eqType);这次超过2个,所以我有点困惑。说这次我添加了用户名属性,我可以使用它进行正常链接session.createCriteria(this