确定。我想要的是: 使用Hibernate,可以加载一次MyEntity对象列表,并将该列表作为jtable模型的内部数据。我也有一个jTextField,当键入一个键时,我调用我的模型的方法,该方法将jtextfield的文本作为参数并过滤MyEntity的内部列表并触发tablemodel change事件。我希望每次都能在没有访问数据库的情况下进行过滤。
我做的是: 我在模型中保留了两个列表:一个名为initialList,只有一次加载了createCriteria(...)。list(),另一个名为filteredList,每当调用刷新方法时,它都填充如下:
public void refresh(String filterText)
{
filteredList = session.createFilter(initialList, "where property= ?")
.setParameter( 0, filterText)
.list();
}
然后我使用此筛选列表为jtable提供行,列值。 好吧,它没有用,因为Hibernate说过滤器API的东西只能在持久集合中使用。所以我有以下3个问题:
提前致谢。
答案 0 :(得分:1)
不确定#1但它可能有用......
我建议您查看commons-collection(CollectionsUtils)并根据需要在内存中进行过滤
另外,根据您所做的查询,如果配置正确,二级缓存实际上可能会阻止对数据库的访问。