比方说,我有一个数百万行的表。 使用JPA,迭代对该表的查询的正确方法是什么,这样我就不会拥有数百万个对象的所有内存列表 ? 例如,如果桌子很大,我怀疑以下情况会炸毁: List<Model> models = entityManager().createQuery("from Model m", Model.class).getResultList(); for (Model model : models) { System.out.println(model.getId()); } 是分页(循环和手动更新setFirstResult() / setMaxResult() )真的是最好的解决scheme? 编辑 :我要定位的主要用例是一种批处理作业。 如果运行时间很长,这很好。 没有涉及networking客户端; 我只需要为每一行“做一些事情”,一次一个(或者一些小N)。 我只是想尽量避免让他们在记忆中。
我正在收集有关flush()方法的信息,但是我不清楚何时使用它以及如何正确使用它。 从我读到的内容来看,我的理解是持久化上下文的内容将与数据库同步,即发出未完成的语句或刷新实体数据。 现在我有两个实体A和B (一对一的关系,但没有强制执行或由JPAbuild模)的以下情况。 A有一个手动设置的组合PK,还有一个自动生成的IDENTITY字段recordId 。 这个recordId应该写入实体B作为A一个外键。 我在一次交易中保存A和B 问题是自动生成的值A.recordId在事务中不可用,除非在A上调用em.persist()之后,明确调用em.flush() 。 (如果我有一个自动生成的IDENTITY PK,那么值直接在实体中更新,但这不是这种情况。) 在事务中使用em.flush()会造成什么危害?
我有一个ArrayList ,我想完全复制它。 我假设某人花了一些时间来正确使用实用类, 所以很自然地,我最终得到了包含复制方法的Collections类。 假设我有以下几点: List<String> a = new ArrayList<String>(); a.add("a"); a.add("b"); a.add("c"); List<String> b = new ArrayList<String>(a.size()); Collections.copy(b,a); 这个失败,因为它基本上认为b不够大,不能持有。 是的,我知道b大小是0,但是现在应该足够大了,不是吗? 如果我必须先填充b ,那么Collections.copy()在我脑海中变成一个完全无用的函数。 所以,除了编程一个复制function(我现在要做的)是否有一个适当的方法来做到这一点?
我的密钥库已损坏,因此Android Market要求我重命名应用程序并重新提交。 但是,无论何时我在Manifest和整个文件中编辑包名,都会给我带来很多的错误。 什么是更改应用程序名称的正确方法?
我正在开发一个新的Android项目( Java ),并创build了一个包含大量variables的Object。 由于我打算为它们添加getter和setter,所以我想知道:在Eclipse是否有一个快捷方式来自动生成给定类中的getter和setter?
当引用具有getter / setter的Java POJO的内部私有variables时,我使用了以下术语: 领域 variables 属性 属性 上面有没有区别? 如果是这样,那么正确的术语是什么? 当这个实体被保存时是否有不同的术语?
我有两个问题: 如何使用Spring RestTemplate映射JSON对象的列表。 如何映射嵌套的JSON对象。 我试图通过遵循http://spring.io/guides/gs/consuming-rest/中的教程来使用https://bitpay.com/api/rates 。
除了Integer.parseInt()处理减号(如logging), Integer.valueOf()和Integer.parseInt()之间还有其他区别吗? 因为既不能parsing,作为一个 十进制 千位分隔符(产生NumberFormatException ),有没有一个已经可用的Java方法来做到这一点?
有时我会看到 try { } catch(Throwable e) { } 有时 try { } catch(Exception e) { } 有什么不同
在Java中,有没有一个像Map一样存储和访问键/值对的对象,但是可以返回一个有序的键列表和一个有序的值列表,这样键和值列表的顺序是相同的? 所以作为解释的代码,我正在寻找一些像我虚构的OrderedMap: OrderedMap<Integer, String> om = new OrderedMap<>(); om.put(0, "Zero"); om.put(7, "Seven"); String o = om.get(7); // o is "Seven" List<Integer> keys = om.getKeys(); List<String> values = om.getValues(); for(int i = 0; i < keys.size(); i++) { Integer key = keys.get(i); String value = values.get(i); Assert(om.get(key) == value); }