小编Pha*_*mar的帖子

Hibernate:@OrderBy vs @OrderColumn维护集合的顺序

在保持持久性以及从数据库检索时维护集合顺序的首选方法是什么?

我知道@OrderBy更多的是内存中的排序,只有当你按照你选择的列的顺序预先排序时才可以检索.

假设我选择使用由数据库序列支持的列,hibernate将确保集合中的元素以与集合(例如List)相同的顺序保持.

任何想法?

更多细节:

假设我有一个与B类有一对多关系的A类.B有一个主键字段'Id',它由DB中的序列支持.

Class A {
  List<B> bList;
}
Run Code Online (Sandbox Code Playgroud)

我一直想保留A中元素B的顺序,如下所示:

bList = { b1, b2, b3 }
Run Code Online (Sandbox Code Playgroud)

实现的一种方法是使用@OrderBy("Id ASC").只有当列表B按顺序保存在下面时,这才有效:

----------------
Id ----bValue
----------------

1------ b1
2------ b2
3-------b3
------------------
Run Code Online (Sandbox Code Playgroud)

当我们检索,因为它按Id排序,维持订单.

让我们通过以下方式保存集合B:

----------------
Id ----bValue
----------------
1------ b2
2------ b1
3-------b3
------------------
Run Code Online (Sandbox Code Playgroud)

当我们检索时,列表B的顺序进行折腾(因为它是按Id列的顺序).所以我的问题是,如果集合B始终保持与列表中显示的顺序相同或不相同.

hibernate

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

使用Ajax4jsf 1.x将JSF 1.1迁移到JSF 2

我们正在将JSF 1.1(MyFaces)项目迁移到JSF 2.我们的想法是通过将JSP和XHTML保持在一起一段时间来定期迁移.我们在JSP页面中使用了许多ajax4jsf-1.1.1标记.我们不使用RichFaces.将系统配置为JSF 2(Balusc教程中提到的所有配置更改)当尝试在类路径中使用ajax4jsf.jar访问JSP页面时,我们得到一个异常:

Caused by: java.lang.IllegalStateException: setViewHandler may not be executed after a lifecycle request has been completed
    at org.apache.myfaces.application.ApplicationImpl.setViewHandler(ApplicationImpl.java:853)
    at org.ajax4jsf.framework.ajax.InitPhaseListener.beforePhase(InitPhaseListener.java:92)
    at org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersBefore(PhaseListenerManager.java:76)
    at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:131)
Run Code Online (Sandbox Code Playgroud)

它看起来ajax4jsf.jar与JSF 2不兼容.看起来LifeCycle配置存在一些问题.

有没有什么办法可以让a4j与JSF 2 JSP一起工作?我知道当我们使用XHTML时,我们不需要这一切.

jsf richfaces myfaces ajax4jsf jsf-2

6
推荐指数
1
解决办法
4531
查看次数

为TCP套接字客户端连接指定本地端口

如何使用node.js指定出站TCP连接的源端口/本地端口?这是支持某些防火墙规则所必需的.

net.connect({port: PORT, host: HOST}, callback)
Run Code Online (Sandbox Code Playgroud)

我希望在上面的调用中有一个额外的参数'localPort'.但看起来API没有处理,以下不起作用.

net.connect({port: PORT, host: HOST, localPort: 12345}, callback)
Run Code Online (Sandbox Code Playgroud)

使用Java我会在下面做:

Socket s = new Socket();
s.bind(new InetSocketAddress("179.11.123.102", 5000));
s.connect(new InetSocketAddress("178.1.2.102", 1234));
Run Code Online (Sandbox Code Playgroud)

node.js中的等价物是什么?

node.js

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

jstat - 生产中的任何性能影响

如果我们在生产环境中继续运行jstat命令(比如每5分钟左右)来监控JVM(6.x)内存,是否会对性能产生影响?目标系统是实时应用程序,甚至一秒钟的停顿也很重要.

java performance

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

标签 统计

ajax4jsf ×1

hibernate ×1

java ×1

jsf ×1

jsf-2 ×1

myfaces ×1

node.js ×1

performance ×1

richfaces ×1