У нас есть множественный Grails 2.0.3 классов домена, которые используют @Mixin аннотацииПримеси по классам Grails Доменов сломанных в обновлении до 2.2
как так:
@Mixin(PremisesMixin)
class Clinic {
Premises premises
String name
....
Это работает очень хорошо!
При попытке обновить до 2.2.2 микшины, похоже, не работают. Мы используем плагин fixtures для загрузки некоторых данных, и в процессе запуска мы получаем ошибки, связанные с геттерами и сеттерами, которые должны вводиться микстинами, которые не присутствуют.
Я нашел там есть некоторые проблемы с заводной Mixins в более поздних версиях Грааль, но есть Grails конкретной замена http://jira.grails.org/browse/GRAILS-9901
, но изменения в
@grails.util.Mixin(PremisesMixin)
class Clinic { ...
дает другие ошибки.
Getter for property 'fax' threw exception; nested exception is java.lang.reflect.InvocationTargetException
Так есть способ использовать Примеси на классах домена Grails в последней версии Грааль или мне нужно реорганизовать свой код, чтобы избежать их?
обновление: помещения Mixin, который находится в Src/заводной выглядит следующим образом:
class PremisesMixin implements Serializable {
private static final long serialVersionUID = 1L
static fields = ['addressLine1', 'addressLine2', 'city', 'county', 'state', 'postalCode', 'plus4', 'phone', 'latitude', 'longitude']
String getAddressLine1() { premises?.addressLine1 }
void setAddressLine1(String addressLine1) { premises?.addressLine1 = addressLine1 }
String getAddressLine2() { premises?.addressLine2 }
void setAddressLine2(String addressLine2) { premises?.addressLine2 = addressLine2 }
String getCity() { premises?.city }
void setCity(String city) { premises?.city = city }
...
String getPhone() { premises?.phone }
void setPhone(String phone) { premises?.phone = phone }
String getFax() { premises?.fax }
void setFax(String fax) { premises?.fax = fax }
...
// Workaround for open Groovy bug with Mixins http://jira.codehaus.org/browse/GROOVY-3612
String toString() {
this as String
}
}
и помещения выглядит следующим образом:
class Premises {
String addressLine1
String addressLine2
String city
String state
...
String county
String phone
String fax
Double latitude
Double longitude
}
Как выглядит «PremisesMixin»? Я был в одной лодке, несколько месяцев назад, до версии 2.2.0, так как вы, но Grails @Mixin работал для меня. – dmahapatro
отредактирован, чтобы включить часть содержимого mixin – aeischeid
Я не вижу 'факс' в статических' полях'. И где «помещения». :) – dmahapatro