Короткий ответ: потяните свою архитектуру системы с точки зрения модулей, оттянутых бок о бок, с каждым модулем, нарезанным вертикально на слои (например, представление, модель, персистентность). Тогда используйте структуру как com.mycompany.myapp.somemodule.somelayer, например, com.mycompany.myapp.client.view или com.mycompany.myapp.server.model.
Используя верхний уровень пакетов для модулей приложения , в старомодном смысле информатики модульное программирование , должно быть очевидным. Однако на большинстве проектов я продолжил работать, мы заканчиваем тем, что забыли делать это и заканчиваться с путаницей пакетов без той структуры верхнего уровня. Этот антишаблон обычно показывает себя пакетом для чего-то как 'слушатели' или 'действия', что группы в других отношениях несвязанные классы просто, потому что они, оказывается, реализуют тот же интерфейс.
В модуле, или в небольшом приложении, пакетах использования для прикладных уровней. Вероятные пакеты включают вещи как следующее, в зависимости от архитектуры:
На каждом из этих слоев, для классов группы типом естественно, если существует много. Общий антишаблон здесь должен излишне представить слишком много пакетов и уровней подпакета так, чтобы было только несколько классов в каждом пакете.
Если вы действительно хотите использовать DATE, вы можете изменить уровень совместимости базы данных.
ALTER DATABASE dbname SET COMPATIBILITY_LEVEL = 100
Это переключит базу данных на совместимость с 2008, и вы сможете использовать тип данных DATE .
Возможно, ваша база данных совместима с 8.0 или 9.0. В этом случае вы не можете использовать тип DATE.