Есть ли какие-либо инструменты ORM для Haskell?

Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException вообще.

См. также: A хороший список лучших практик

Я бы добавил, очень важно, хорошо использовать модификатор final. Использование "окончательной" модификатор, когда это применимо в Java

Сводка:

  1. Используйте модификатор final для обеспечения хорошей инициализации.
  2. Избегайте возврата null в методы, например, при возврате пустых коллекций.
  3. Использовать аннотации @NotNull и @Nullable
  4. Быстрое завершение работы и использование утверждений, чтобы избежать распространения нулевых объектов через все приложение, когда они не должен быть пустым.
  5. Сначала используйте значения с известным объектом: if("knownObject".equals(unknownObject)
  6. Предпочитают valueOf() поверх toString ().
  7. Используйте null safe StringUtils StringUtils.isEmpty(null).

35
задан Greg Bacon 30 January 2010 в 22:25
поделиться

4 ответа

Библиотека, которую я имею в виду, не является ORM, но она может все еще сделать то, что Вы хотите.

, Если Вы хотите что-то, что делает Ваши доступы базы данных безопасными при интеграции вещей в программу приятно тогда, испытывают HaskellDB. Это в основном смотрит на Вашу схему, генерирует некоторые структуры данных, и затем дает Вам безопасные с точки зрения типов способы запросить. Это было вокруг долгое время, и мнение сообщества - то, что это хорошо и стабильно.

Для использования его Вам будет нужна некоторая базовая библиотека DB Haskell как HSQL.

Удачи!

14
ответ дан Jason Dagit 27 November 2019 в 15:40
поделиться

Причина, что библиотеки ORM существуют, состоит в том, что существует относительная большая разница между Объектами в C# или Java и что Вы храните в базе данных. Это не так проблема в Haskell потому что:

  1. Это не имеет Объектов
  2. , Обе базы данных и список Haskell имеют свое вдохновение в математической теории множеств, таким образом, трение между ними намного меньше, чем между базами данных и Объектами.
11
ответ дан tomjen 27 November 2019 в 15:40
поделиться

Мне на самом деле очень нравится подход HAppS ( HAppS-состояние ), который позволяет Вам забывать о прохождении через маршалинга/немаршалинга cludge ORM и позвольте нам, Вы просто используете типы данных Haskell.

2
ответ дан eelco 27 November 2019 в 15:40
поделиться

Вы просмотрели отображение базы данных и пакеты доступа в http://hackage.haskell.org/packages/archive/pkg-list.html#cat:Database

, я не использовал их, так не может рекомендовать никакой конкретный. Я также не знаю, какие базы данных Вы - планирование использования.

1
ответ дан wnoise 27 November 2019 в 15:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: