草庐IT

delete_by_query

全部标签

java - 如何从 javax.persistence.Query 获取查询字符串?

也许我遗漏了什么,但我只是想(在我的java程序中)从javax.persistence.Query对象获取查询字符串?Query对象本身似乎没有执行此操作的方法。我也知道我们的经理不希望我们使用Spring框架的东西(例如使用他们的QueryUtils类)。有没有一种方法可以简单地从javax.persistence.Query对象(同样,在java程序中)获取查询字符串?! 最佳答案 没问题。hibernate:query.unwrap(org.hibernate.Query.class).getQueryString()或ec

java - 如果未调用 System.gc(),则 File.delete() 不会删除新文件

这个问题在这里已经有了答案:JavafiledeleteandSystem.gc()(2个答案)关闭7年前。我目前在删除一个我从未在我的程序中使用过的文件时遇到问题。首先,这是我的配置:Java版本:1.8.0_20操作系统:Windows7ProSP1代码如下:Fileout=newFile(workingDirectory,filePrefix+"download");//cleanupoldfailedruns//System.gc();//Bad!butseemstheonlywaytopassthetestbooleanisDeleted=out.delete();asser

java - JPA Criteria query eager fetch associated entities using a SINGLE query with join 而不是多个查询

在将hibernate从4.3.11升级到5.2.12的范围内,我们正在从Hibernatenative标准查询迁移到JPA标准查询,并发现了不同的行为。以前的hibernate条件使用带有连接的单个查询来急切地获取一对多关联实体,但JPA使用单独的查询来获取每个根实体的关联实体。我知道我可以像entityRoot.fetch("attributes",JoinType.INNER);那样显式设置获取模式,但我们需要在一些AbstractDao实现中完成它,它应该适用于任何急切的人-对多关联,因此不能显式设置。那么我能否以某种方式告诉JPA标准,以便在默认情况下使用连接而不是针对每个根

java - Hibernate 二级缓存和数据库模式中的 ON DELETE CASCADE

我们的Java应用程序有大约100个映射到数据库(SQLServer或MySQL)的类。我们使用Hibernate作为我们的ORM(带有XML映射文件)。我们在数据库模式中指定了FOREIGNKEY约束。我们的大多数FOREIGNKEY约束还指定了ONDELETECASCADE。我们最近开始启用Hibernate二级缓存(针对流行的实体和集合)以缓解一些性能问题。自从我们启用二级缓存后,性能得到了提升。但是,我们也开始遇到ObjectNotFoundExceptions。似乎ObjectNotFoundExceptions正在发生,因为数据库正在删除Hibernate下面的表行。例如,

java - diff_match_patch : Generating side-by-side view

我正在使用google-diff-match-patch使用我的Java应用程序创建差异。我使用方法diff_prettyHtml生成diff的HTML输出。但是,我想要两个不同的输出,所以我可以将它们并排放置,让用户更容易看出差异。(例如,像Eclipse那样。)我可以使用该库中的任何内容来实现此目的吗?你会怎么做?(如果可能的话,我不会使用不同的库。) 最佳答案 假设您不尝试比较HTML,在这种情况下我建议使用DaisyDiff,你可能想用diff-match-patch做的是linedifferencing,whichisde

java - 命名 Hibernate 查询的 "Named query not known"?

可能是什么问题?@Entity@NamedQueries({@NamedQuery(name=User.ALL,query="SELECTuFROMUseru")})publicclassUser{publicstaticfinalStringALL="User.all";}publicclassService{find...with...User.ALL}堆栈跟踪:Causedby:org.hibernate.MappingException:Namedquerynotknown:User.allatorg.hibernate.impl.AbstractSessionImpl.get

java - 谷歌应用引擎 (Java) 任务队列 API : how to query number of running/pending tasks?

是否可以通过编程方式查询任务队列API以查看当前有多少任务正在执行/待处理?我在API中看不到任何执行此操作的方法,因此我求助于在数据存储区中创建对象来表示排队的任务。运行时,任务会从数据存储中删除相应的条目。如您所想,这很容易不同步。实际上,如果能够简单地计算给定队列名称的队列中的任务数量,我会非常高兴。 最佳答案 遗憾的是,没有可用于获取有关任务队列的信息的API。但是,我相信团队在未来会考虑到这一点(一个用于获取我们当前在仪表板上看到的统计信息的编程接口(interface),例如任务计数)。

java - 是否可以在 Spring Data JPA 中将 @Lock 与 @Modifying @Query 与 Hibernate 结合使用?

在将@Lock注释与@Modifying@Query一起使用以及查询本身执行更新语句时,我遇到了问题。我的测试设置如下所示:SpringBootStarter1.5.3.RELEASEhibernate5.2.10.FinalSpringDataJPA1.11.3.RELEASE测试的数据库:H2、PostgreSQL、MariaDB、Oracle示例实体:importjavax.persistence.Column;importjavax.persistence.Entity;importjavax.persistence.Id;importjavax.persistence.Tab

java - 验证 Jpa 实体 : In service or by lifecycle listeners

问题是将Jpa实体的业务验证逻辑放在哪里更好(或者换句话说:您更喜欢在哪里)。两个想法是:在EntityListener中,在保存或更新之前将验证实体在提供对jpa持久化方法的访问的服务中。两者各有利弊。当使用方法2时,它更容易测试,因为您可以模拟jpa提供程序并测试验证逻辑。另一方面,对于方法1,验证将与@NotNull等验证同时发生。我很想知道你们如何解决项目中的验证问题,哪种方法更好。谢谢。 最佳答案 这是我遵循的一般经验法则:Whenusingbeanvalidation,specifyrulesthatdonotrequi

java - 在 HQL order by 子句中处理 SQL 注入(inject)

在HibernateHQLorderby子句中是否有一种简单的方法来处理SQL注入(inject)。命名参数显然不适用于它。编辑:请随意发布您处理此问题的方法。我想看看其他人的解决方案并从中学习。感谢任何建议和解决方案。 最佳答案 您可以使用HibernatecriteriaAPI而不是HQL。标准API检查订单标准是否引用有效属性。如果你尝试这样的事情:publicvoidtestInjection(){StringorderBy="this_.typedesc,type";Criteriacrit=this.getSession