JPA: я должен очистить свои классы объекта с помощью orm.xml?

Если вы сделаете IsHarmfulToEat контравариантным, следующий код скомпилирует

  trait Food

  trait Plentiful

  trait IsHarmfulToEat[-F <: Food]

  object IsHarmfulToEat {
    implicit def ignoreSupply[F <: Food]
    (implicit isHarmful: IsHarmfulToEat[F]
    ): IsHarmfulToEat[F with Plentiful] =
      new IsHarmfulToEat[F with Plentiful]{}
  }

  case class Cake() extends Food {}

  object Cake {
    implicit val isBad: IsHarmfulToEat[Cake] = new IsHarmfulToEat[Cake] {}
  }

  object FoodTest extends App {
    val ignoreSupplyDoesWork: IsHarmfulToEat[Cake with Plentiful] =
      IsHarmfulToEat.ignoreSupply[Cake]

    val badCake = implicitly[IsHarmfulToEat[Cake]]
    val manyBadCakes = implicitly[IsHarmfulToEat[Cake with Plentiful]]
  }
7
задан Jaka Jančar 17 May 2009 в 09:05
поделиться

2 ответа

Первой остановкой, как уже упоминалось, должна быть попытка сжать / восстановить базу данных. Однако вы также можете немного сэкономить размер, создав новую базу данных и импортировав все объекты из старой. Кроме того, преобразование его в MDE должно дать вам больше волос. Как всегда, не играйте с производственной копией. Кроме того, если вы используете MDE, сначала убедитесь, что вы правильно разбили базу данных. (И, конечно, сохраните копию исходного MDB на случай, если в будущем вам потребуются изменения.)

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

5
ответ дан 7 December 2019 в 10:07
поделиться

Сущности JPA, представляющие собой просто Java Beans (классы, определяющие геттеры и сеттеры) с дополнительным вспомогательным кодом (конструкторы, hashCode, equals, именованные запросы, методы копирования, что еще?), Вряд ли можно считать загрязненными даже со всеми типами аннотаций JPA.

Настоящей целью разделения метаданных между аннотациями Java и xml было бы упрощение и оптимизация политик развертывания. Цена, которую вы понесете, двоякая:

  1. обеспечение разработки политики относительно того, какие метаданные принадлежит какому месту и
  2. перекрестные ссылки java и xml при создании и особенно поддержание метаданных (более или менее, но всегда неудобно).

Оба являются довольно серьезными соображениями при работе в средней и большой группе разработчиков.

Если перекомпиляция для изменений базы данных представляет собой значительную проблему в процессе развертывания, то это звучит как разумный подход. Но цена будет заключаться в более сложной среде разработки и политиках процессов и обслуживания.

1
ответ дан 7 December 2019 в 10:07
поделиться
Другие вопросы по тегам:

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