Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException
вообще.
См. также: A хороший список лучших практик
Я бы добавил, очень важно, хорошо использовать модификатор final
. Использование "окончательной" модификатор, когда это применимо в Java
Сводка:
final
для обеспечения хорошей инициализации. @NotNull
и @Nullable
if("knownObject".equals(unknownObject)
valueOf()
поверх toString (). StringUtils
StringUtils.isEmpty(null)
. Библиотека, которую я имею в виду, не является ORM, но она может все еще сделать то, что Вы хотите.
, Если Вы хотите что-то, что делает Ваши доступы базы данных безопасными при интеграции вещей в программу приятно тогда, испытывают HaskellDB. Это в основном смотрит на Вашу схему, генерирует некоторые структуры данных, и затем дает Вам безопасные с точки зрения типов способы запросить. Это было вокруг долгое время, и мнение сообщества - то, что это хорошо и стабильно.
Для использования его Вам будет нужна некоторая базовая библиотека DB Haskell как HSQL.
Удачи!
Причина, что библиотеки ORM существуют, состоит в том, что существует относительная большая разница между Объектами в C# или Java и что Вы храните в базе данных. Это не так проблема в Haskell потому что:
Мне на самом деле очень нравится подход HAppS ( HAppS-состояние ), который позволяет Вам забывать о прохождении через маршалинга/немаршалинга cludge ORM и позвольте нам, Вы просто используете типы данных Haskell.
Вы просмотрели отображение базы данных и пакеты доступа в http://hackage.haskell.org/packages/archive/pkg-list.html#cat:Database
, я не использовал их, так не может рекомендовать никакой конкретный. Я также не знаю, какие базы данных Вы - планирование использования.