Spring 3 + Hibernate 4 Lazy Intialize collections
В hibernate есть очень удобная вещь - Lazy Collections. Они позволяют вам описывать логику взаимосвязей объектов и не думать о лишней нагрузке на базу в том случае если вам не понадобится эта коллекция, а она всё равно загрузится при создании объекта.
В spring использование Lazy Collections связанна с одной трудностью: получение такой коллекции из jsp может привести к ошибке: Failed to lazily initialize a collection
Как решить проблему с Failed to lazily initialize a collection читайте внутри.
StringTokenizer и csv
StringTokenizer обрабатывает несколько разделителей как один
Если нужно написать быструю обработку данных из csv файла, то первое что приходит на ум воспользоваться StringTokenizer. Но надо знать про одну особенность этого класса - несколько разделителей он воспринимает как один. А в случае CSV-файла это приведёт к ошибке обработки пустых полей, поэтому лучше воспользоваться следующей конструкцией:
String row_fields[] = row.split("\t");
int fieldcntr =0;
String field1 = row_fields[fieldcntr++];
String field2 = row_fields[fieldcntr++];
Если же csv файл содержит строки, которые могут содержать в себе разделитель, то проще всего воспользоваться сторонней библиотекой, например:
OpenCSV
Обработка csv файла в этом случае так же проста: