2016-02-25 4 views
0

Я работаю над проектом Grails, версия Grails: 2.2.0. у меня есть эти классы:абстрактный класс в полиморфизме GORM

public abstract class A {} 
public class B extends A {} 
public class C extends A {} 

На данный момент, все в порядке класса А находится в: SRC/заводной так в БД у меня есть две таблицы B & C. Теперь я добавить новый класс:

public class D{ 
A aa 
} 

теперь больше не работает, потому что спящий режим не распознает тип A. Одним из решений является опустить абстрактный термин, но который позволяет создавать объекты A, что не так правильно! Есть ли у кого-нибудь представление о том, как исправить эту проблему? спасибо

+1

Дубликат http://stackoverflow.com/questions/12368364/grails-2-abstract-domain-inheritance-issue? – Ask613

ответ

0

Проблема заключается в следующем: GORM/Hibernate должны иметь возможность создавать экземпляры класса свойств домена (для переходных из них, за исключением, конечно). Из-за этого свойство не может быть абстрактного типа. По той же причине интерфейсы не работают.

Чтобы сохранить наследство, к сожалению, вам придется сделать это не так хорошо вещи: падение абстрактной и сделать A собой класс домена.

+0

Я не отбрасывал абстрактный текст, но я помещал класс A в dir домена, чтобы hibernate создавал класс домена. –

Смежные вопросы