hibernate @Column, только если столбец существует - PullRequest
1 голос
/ 08 декабря 2011

У меня есть:

@MappedSuperClass
public class A{

   private int boo;

   @Column(name = boo)
   public int getBoo(){
       return boo;
   }

   public void setBoo(int boo){
       this.boo = boo;
   }  
}

Проблема в том, что столбец 'boo' может существовать не для всех таблиц.Можно ли аннотировать getBoo () таким образом, чтобы, если столбец не существовал, он сохранял 'boo' как ноль?

Ответы [ 3 ]

3 голосов
/ 08 декабря 2011

Может быть, здесь лучше использовать наследование, я имею в виду class AWithBoo extends A.

2 голосов
/ 10 декабря 2011

На работе у нас одна и та же проблема: приложение, которое используется в 27 странах.Все эти страны хотят иметь свои собственные функции, и поэтому свои собственные столбцы БД.

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

1 голос
/ 08 декабря 2011

Четкий ответ: нет, вы не можете этого сделать. Вы должны обязательно пересмотреть свой дизайн. Почему бы не использовать наследование и не перевести бу в производный класс?

Кстати: если бы вы могли установить для boo значение null, как вы описали в своем вопросе, int boo взорвется с NPE;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...