我有一个JPQL查询,它从数据库中检索实体的排序列表.我有其中一个实体的id.如何在我的选择中使用已知ID获取记录的上一条和下一条记录?
select distinct n from News n
inner join n.author a
inner join n.tags t
where a.id = :authorId and t.id in :tagsId
order by size(n.comments) desc
Run Code Online (Sandbox Code Playgroud)
新闻有一位作者,许多标签和评论.我用给定的作者和标签选择新闻,并根据评论的次数对它们进行排序.
使用JDBC时,我已经解决了这些问题rownum.
我可以使用JPA获得结果中记录的位置(rownum)吗?如果我知道记录的位置,我可以将第一个结果定义到该位置 - 1,并且对于给定查询,最大结果为3.这就是我如何得到以前,当前和下一个新闻.
除了遍历新闻列表之外,还有其他解决方案吗?
在我的Hibernate项目中,我添加如下索引:
@Entity
@Table(name="MY_TABLE", indexes = {
@Index(name = "idx_user_name", columnList = "name"),
@Index(name = "idx_user_email", columnList = "email")
})
Run Code Online (Sandbox Code Playgroud)
哪个工作得很好,但是当我想制作这样的索引时会发生什么:
CREATE INDEX ON my_table (lower(name));
Run Code Online (Sandbox Code Playgroud)
如果我使用以下注释,我得到一个AnnotationException:
@Index(name = "idx_lower_name", columnList = "lower(name)")
Run Code Online (Sandbox Code Playgroud)
我希望通过Hibernate + JPA 2.1制作索引来发布我的项目.是否可以通过索引注释应用函数?
或者我应该在部署时运行SQL脚本以通过SQL自己添加这些索引?
我可能只是格式化columnList错误,或者可能存在我缺少的文档中没有描述的字段.
返回 Hibernate 唯一结果的最简洁方法是null什么?
这个解决方案有什么问题吗:
public Category getCategoryById(int id) {
Object result = currentSession.createCriteria(Category.class)...uniqueResult();
return (Category) result;
}
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来做到这一点?
我有以下片段:
Comparable<C> a = ...;
Comparable<C> b = ...;
Comparable<C> min = a.compareTo(b) <= 0 ? a : b;
Run Code Online (Sandbox Code Playgroud)
这类似于Math.min(a, b),但在上定义Comparable。
我知道三元运算符已经很短了,但是我无法内联aand 的表达式,b因此我认为是min(a, b)。max(a, b)更容易理解。
我知道有几个流响应。收集一组值的函数,例如:
Stream.of(a, b).min(Comparator.naturalOrder())
Run Code Online (Sandbox Code Playgroud)
这将有助于内联表达式,但是对于这样的小任务,我仍然觉得很难阅读并且开销太大。
目前,我正在使用自己的实用程序功能,但我很感兴趣:
如何以一种可读性和独立于库的方式找到两个可比对象中的最小值,而又没有太多的性能开销?
当我使用POI XSLF创建PPTX时,我得到一张空白幻灯片:
XMLSlideShow ppt = new XMLSlideShow();
XSLFSlide slide = ppt.createSlide();
XSLFTextBox shape = slide.createTextBox();
XSLFTextParagraph p = shape.addNewTextParagraph();
XSLFTextRun r1 = p.addNewTextRun();
r1.setText("the");
r1.setFontColor(Color.blue);
r1.setFontSize(24);
OutputStream out = new FileOutputStream("d:/font.pptx");
ppt.write(out);
out.close();
Run Code Online (Sandbox Code Playgroud)
为什么幻灯片没有任何文字?
我想将hibernate-spatial和添加postgis到我的 Maven 项目中。
这是我的pom.xml:
<properties>
<hibernate.version>4.3.6.Final</hibernate.version>
<hibernate.spatial.version>4.3</hibernate.spatial.version>
<hibernate.core.version>4.3.6.Final</hibernate.core.version>
<postgis-jdbc.version>2.2.0</postgis-jdbc.version>
</properties>
...
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${hibernate.core.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>${hibernate-entitymanager.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-spatial</artifactId>
<version>${hibernate.spatial.version}</version>
</dependency>
<dependency>
<groupId>org.postgis</groupId>
<artifactId>postgis-jdbc</artifactId>
<version>${postgis-jdbc.version}</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
参考entity-manager和hibernate-core工作。但是hibernate-spatial并postgis-jdbc没有找到:
org.hibernate:hibernate-spatial:4.3 not found 检查 Maven 模型以解决问题。
(同样的错误postgis-jdbc)
如何在我的项目中包含这些库?
我想在Liferay中使用插件(portlet,hook或theme)时运行一些代码.
我找不到像任何启动监听器的liferay-plugin-package.xml,liferay-portlet.xml,liferay-hook.xml或liferay-look-and-feel.xml.
是否可以portal_normal.vm在Liferay 6.2中读取cookie值?
我目前正在使用文章显示页面在Liferay 6.2 中显示我的网页内容。我试图弄清楚如何在/-/.
当前网址: siteName/-/articleName
所需网址: siteName/-/topicSection/articleName
在 Eclipse 的其他实例(PHP、Java)中,我可以使用比较编辑器。
在安装了“node.js Developer Tools”的一个实例中,比较编辑器不显示任何内容(只是一个空白的灰色视图)。相反,错误视图显示错误Unhandled event loop exception(见下文)。
当我创建一个新项目时,奇怪的是在同一个 eclipse 实例上,比较编辑器的工作。我完全清理了在工作区中重新导入的项目(删除 .project、.settings、.tern-project 文件),但问题仍然存在。
完整的错误消息Unhandled event loop exception:
org.eclipse.core.runtime.AssertionFailedException: assertion failed:
at org.eclipse.core.runtime.Assert.isTrue(Assert.java:110)
at org.eclipse.core.runtime.Assert.isTrue(Assert.java:96)
at org.eclipse.jface.text.Position.<init>(Position.java:62)
at org.eclipse.compare.structuremergeviewer.DocumentRangeNode.registerPositionUpdater(DocumentRangeNode.java:115)
at org.eclipse.compare.structuremergeviewer.DocumentRangeNode.<init>(DocumentRangeNode.java:110)
at org.eclipse.wst.jsdt.internal.ui.compare.JavaNode.<init>(JavaNode.java:53)
at org.eclipse.wst.jsdt.internal.ui.compare.JavaParseTreeBuilder.push(JavaParseTreeBuilder.java:139)
at org.eclipse.wst.jsdt.internal.ui.compare.JavaParseTreeBuilder.visit(JavaParseTreeBuilder.java:66)
at org.eclipse.wst.jsdt.core.dom.TypeDeclaration.accept0(TypeDeclaration.java:368)
at org.eclipse.wst.jsdt.core.dom.ASTNode.accept(ASTNode.java:2426)
at org.eclipse.wst.jsdt.core.dom.ASTNode.acceptChild(ASTNode.java:2473)
at org.eclipse.wst.jsdt.core.dom.TypeDeclarationStatement.accept0(TypeDeclarationStatement.java:213)
at org.eclipse.wst.jsdt.core.dom.ASTNode.accept(ASTNode.java:2426)
at org.eclipse.wst.jsdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2499)
at org.eclipse.wst.jsdt.core.dom.JavaScriptUnit.accept0(JavaScriptUnit.java:242)
at org.eclipse.wst.jsdt.core.dom.ASTNode.accept(ASTNode.java:2426)
at org.eclipse.wst.jsdt.internal.ui.compare.JavaStructureCreator.createStructureComparator(JavaStructureCreator.java:285)
at org.eclipse.wst.jsdt.internal.ui.compare.JavaStructureCreator.createStructureComparator(JavaStructureCreator.java:243)
at org.eclipse.compare.structuremergeviewer.StructureCreator.internalCreateStructure(StructureCreator.java:118)
at org.eclipse.compare.structuremergeviewer.StructureCreator.access$0(StructureCreator.java:106)
at org.eclipse.compare.structuremergeviewer.StructureCreator$1.run(StructureCreator.java:93)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at org.eclipse.compare.internal.Utilities.runInUIThread(Utilities.java:805)
at org.eclipse.compare.structuremergeviewer.StructureCreator.createStructure(StructureCreator.java:99)
at org.eclipse.compare.structuremergeviewer.StructureDiffViewer$StructureInfo.createStructure(StructureDiffViewer.java:174)
at org.eclipse.compare.structuremergeviewer.StructureDiffViewer$StructureInfo.refresh(StructureDiffViewer.java:152)
at org.eclipse.compare.structuremergeviewer.StructureDiffViewer$StructureInfo.setInput(StructureDiffViewer.java:123)
at …Run Code Online (Sandbox Code Playgroud)