小编Tob*_*fke的帖子

JPA在select中获得上一个和下一个记录

我有一个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.这就是我如何得到以前,当前和下一个新闻.

除了遍历新闻列表之外,还有其他解决方案吗?

java database jpa jpql

5
推荐指数
1
解决办法
756
查看次数

带有函数的列的JPA 2.1索引注释

在我的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错误,或者可能存在我缺少的文档中没有描述的字段.

java hibernate jpa

5
推荐指数
1
解决办法
1767
查看次数

当 Hibernate 可能为空时,如何从 Hibernate 返回唯一结果?

返回 Hibernate 唯一结果的最简洁方法null什么?

这个解决方案有什么问题吗:

public Category getCategoryById(int id) {
    Object result = currentSession.createCriteria(Category.class)...uniqueResult();
    return (Category) result;
}
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来做到这一点?

java hibernate

5
推荐指数
1
解决办法
1万
查看次数

最小/最大功能,具有两个可比性

我有以下片段:

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)

这将有助于内联表达式,但是对于这样的小任务,我仍然觉得很难阅读并且开销太大。

目前,我正在使用自己的实用程序功能,但我很感兴趣:

如何以一种可读性和独立于库的方式找到两个可比对象中的最小值,而又没有太多的性能开销?

java comparable

5
推荐指数
4
解决办法
1247
查看次数

如何在使用POI XSLF时创建PPTX?

当我使用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)

为什么幻灯片没有任何文字?

java apache-poi xslf

3
推荐指数
1
解决办法
1292
查看次数

在 Maven 中找不到休眠空间 4.3

我想将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-managerhibernate-core工作。但是hibernate-spatialpostgis-jdbc没有找到:

org.hibernate:hibernate-spatial:4.3 not found 检查 Maven 模型以解决问题。

(同样的错误postgis-jdbc

如何在我的项目中包含这些库?

java hibernate spatial pom.xml maven

3
推荐指数
1
解决办法
2695
查看次数

当我的插件部署到Liferay时,如何运行某些操作?

我想在Liferay中使用插件(portlet,hooktheme)时运行一些代码.

我找不到像任何启动监听器liferay-plugin-package.xml,liferay-portlet.xml,liferay-hook.xmlliferay-look-and-feel.xml.

portlet liferay liferay-6

2
推荐指数
1
解决办法
1145
查看次数

在Velocity模板中读取cookie

是否可以portal_normal.vm在Liferay 6.2中读取cookie值?

templates liferay liferay-6

2
推荐指数
1
解决办法
1156
查看次数

在 Liferay 中更改网页内容的友好 URL

我目前正在使用文章显示页面在Liferay 6.2 中显示我的网页内容。我试图弄清楚如何在/-/.

当前网址: siteName/-/articleName

所需网址: siteName/-/topicSection/articleName

friendly-url liferay-6

2
推荐指数
1
解决办法
2431
查看次数

比较编辑器无法在 node.js 项目上使用 Eclipse

在 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)

eclipse node.js

2
推荐指数
1
解决办法
696
查看次数