Используйте @Type (только в Hibernate):
@Column(precision = 5, scale = 4)
@Type(type = "big_decimal")
private double similarity;
Результатом будет определение (PostgreSQL, Oracle):
similarity numeric(5, 4),
similarity number(5, 4)
Лично есть 3 основных участника, влияющих на то, научусь ли я (и делаю) писать приложения для любой данной системы:
Действительно ли система очень полезна, чтобы я хотел использовать ее достаточно, чтобы быть достаточно мотивированным, чтобы расширить его?
Использует ли система язык, с которым я знаком, или его легко выучить, в отличие от какого-то непонятного, закрытого или иного слишком сложного решения (см. elisp)?
Система плагинов очень хорошо задокументирована и понятным языком, так что я могу заниматься написанием своего плагина и не тратить часы (или дни) на расшифровку системы?
Если все это правда, то единственная причина, по которой вы не хотели бы Разработка для платформы заключается в том, что кто-то уже написал плагины для всех ваших идей. :)
Я думаю, что это ' Также чрезвычайно полезно / важно иметь центральный и хорошо известный репозиторий для размещения пользовательских плагинов (в соответствии с вашими примерами проектов). Я ненавижу рыскать по сети в поисках отдельных, возможно, низкого качества или даже вредоносных надстроек для того, что я пытаюсь сделать. Это должен быть веб-сайт или вики, поскольку даже форумы или архивы списков рассылки могут раздражать и требовать много времени, чтобы копаться.
Вы упускаете суть.
JVM - это подключаемая архитектура. Каждый файл класса подключается к нему и расширяет его.
Apache - это подключаемая архитектура на нескольких уровнях. Есть «моды». Некоторые моды запускают другие интерпретаторы, которые сами по себе являются подключаемыми архитектурами. PHP, mod_wsgi / Python и т. Д. Подключены к Apache.
Python представляет собой подключаемую архитектуру с файлами Python .pyc и объектными файлами (.DLL, .SO), которые подключаются к ней.
Каждая языковая среда - - фактически - подключаемая архитектура.
Платформа - это основа
Одно из представлений о программной платформе - это основа, на которую опирается другое программное обеспечение для выполнения другой задачи. Это может показаться простым и довольно очевидным заявлением, но оно очень важно.
Основы должны быть простыми
Платформа должна иметь цель, и разработчики платформы должны знать об этом при разработке API, чтобы стало очевидно, что основные варианты использования таковы, и API вокруг них должны быть сделаны как можно более простыми для использования в отношении способа их разработки, а также в отношении документации вокруг них.
Точки расширения должны быть очевидными
Расширяемость платформы заключается в предоставлении разработчикам возможности расширять или изменять платформу. Если это то, что вы хотите поощрять, тогда вам необходимо очень четко разъяснить природу и ограничения этой расширяемости и предоставить четко определенный набор интерфейсов, позволяющий это сделать.
Все это может показаться очевидным, но если вы хотите, чтобы сообщество развивалось вокруг платформы, эта платформа должна иметь применение, и ее расширение должно быть простым.
Извините, если это немного "архитектурный астронавт", Я действительно думаю, что высказал некоторые обоснованные замечания, возможно, я сделал их плохо, не стесняйтесь указать на это или добавить к ним
Не забывайте Eclipse (с > 1000 зарегистрированных сторонних "плагинов" (на самом деле они состоят из еще меньших плагинов в терминологии Eclipse )). Частично его успех может быть связан с наличием хороших практических правил о том, как разработать плагин, который также может быть расширен другими. Также существует строгая политика управления версиями API (которая, конечно же, имеет свои недостатки).