Вы всегда должны использовать функции BigDecimal для выполнения операций над значениями Integer. Целое число может быть представлено как BigDecimal, но не всегда наоборот, например, если попытаться привести BigDecimal к целому числу следующим образом:
myBigDecimal.intValueExact () оно выдаст исключение в случае потери информации. [ 112] blockquote>
так что просто делайте так, как вы делаете, и конвертируйте Integer в BigDecimal, а не наоборот, чтобы ничего плохого не случилось.
Вы можете проверить эту ссылку , там много информации о BigDecimal и BigInteger в Java.
Как MarkusQ и n8wrl уже указали, у Joe Celko есть некоторый хороший материал на этом. Я просто добавлю, что существует несколько способов смоделировать иерархию (книга Joe содержит несколько, я полагаю, не просто тот, что он рассматривает "лучшее"). Ваше окончательное решение, надо надеяться, примет во внимание Ваши собственные определенные потребности. Некоторые различные способы смоделировать его лучше для интенсивных действий записи, в то время как другие лучше для частых или быстрых чтений вверх и вниз по иерархии. Просто имейте в виду то, что Ваша система будет делать с ним.
Существуют некоторые определенные для поставщика расширения, чтобы сделать это, но мой любимый нейтральный в отношении дб путь прибывает от Joe Celko - Google 'Деревья Joe Celko и Иерархии', или купите эту книгу: текст ссылки
Это - очень умный основанный на наборе способ пойти. Легкий запросить иерархию. Я добавил 'parentID' поле, которое Вы имеете просто, потому что я спрашиваю 'прямых детей' и 'порождаю' вопросы много, и это ускоряет их. Но это - замечательный способ получить запрос 'descdent' или 'родословная'.
Можно также хотеть проверить "вложенные наборы" шаблон:
http://www.intelligententerprise.com/001020/celko.jhtml (неработающая ссылка)
Или Вы можете Google для больше.
P.S.: Проклятия, n8wrl, Вы вводите быстрее, чем я!
В Oracle можно использовать ПОДКЛЮЧЕНИЕ/НАЧИНАТЬ С запросить hierarchial данные. В SQL Server можно использовать хранимую процедуру, которая называет себя рекурсивно.
Я определенно рекомендовал бы вложенные наборы. Они являются великими.
http://threebit.net/tutorials/nestedset/tutorial1.html http://www.dbmsmag.com/9603d06.html