Играть! Конфликт универсальной модели с типом данных blob

Я пытаюсь использовать extends GenericModel с типом данных blob, но получаю сообщение об ошибке:

Execution error occured in template 
{module:crud}/app/views/tags/crud/form.html. Exception raised was 
MissingPropertyException : No such property: id for class: models.Member.
In {module:crud}/app/views/tags/crud/form.html (around line 56)

#{crud.passwordField name:field.name, value:(currentObject ? currentObject[field.name] : null) /}
#{/if}
#{if field.type == 'binary'}
    #{crud.fileField name:field.name, value:(currentObject ? currentObject[field.name] : null), id:currentObject?.id /}
#{/if}
#{if field.type == 'longtext'}
    #{crud.longtextField name:field.name, value:(currentObject ? currentObject[field.name] : null) /}
#{/if}

Моя модель:

@Entity
@Table(name = "news_feed")
public class NewsFeed extends GenericModel {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    public Long news_id;

    public Blob news_image;
    ...
}

Я не получаю ошибку, если я удаляю extends GenericModel или удаляю каплю. Что вызывает проблему?

Любая помощь приветствуется.

Спасибо!


person Luke    schedule 05.10.2012    source источник


Ответы (1)


Я не думаю, что ваша проблема связана с большим двоичным объектом, а с модулем CRUD, обрабатывающим нестандартное имя идентификатора.

В вашем примере модуль crud пытается получить «currentObject?.id», но ваше имя идентификатора «news_id»

Попробуйте переименовать поле «news_id» в «id».

person Seb Cesbron    schedule 05.10.2012
comment
Разве это не должно решаться @Id? Тем не менее, это сработало, спасибо! - person Luke; 06.10.2012
comment
@Id установил ваш атрибут как идентификатор для сохраняемости jpa, но модуль CRUD работает с более строгими соглашениями, чем jpa. - person Seb Cesbron; 08.10.2012