由于 OOM 错误,我收到PersistenceException异常。
Exception in thread "Thread-7" java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.util.Arrays.copyOf(Arrays.java:2271)
at java.lang.StringCoding.safeTrim(StringCoding.java:79)
at java.lang.StringCoding.access$300(StringCoding.java:50)
at java.lang.StringCoding$StringEncoder.encode(StringCoding.java:305)
at java.lang.StringCoding.encode(StringCoding.java:344)
at java.lang.String.getBytes(String.java:916)Heap dump file created [464734012 bytes in 39.704 secs]
我正在尝试处理具有 80-100k 行的文件。每行将作为一行存储在表中。每行大约有 15-20 个属性。我想了解数据库事务(@Transactional)需要多少内存才能将它们保存在实体管理器中并一次性持久化它们?由于我们的架构设计限制,批处理是不可行的。
请帮忙。