Вызов метода @Transient в Spring Hibernate - PullRequest
3 голосов
/ 04 ноября 2011

У меня есть один класс Pojo, в котором я создаю одно поле, которое не сопоставлено с таблицей базы данных.Поэтому я должен объявить поле Объявление и метод установки и получения @Transient, в противном случае он показал бы ошибку.

@Transient
private String docHistoryString="";

@Transient
public String getDocHistoryString() {
    return docHistoryString;
}

@Transient
public void setDocHistoryString(String docHistoryString) {
    this.docHistoryString = docHistoryString;
}

Теперь моя проблема в контроллере.Я установил некоторое значение в этом переходном поле, но когда я пытаюсь получить доступ к этой переменной, используя EL в представлении (JSP), это не дает значения.Я думаю, это потому, что я использовал аннотацию @transient в методе get.

Ответы [ 2 ]

6 голосов
/ 05 ноября 2011

Все аннотации Hibernate, включая @Transient, должны применяться в соответствии с типом доступа .По умолчанию это будет так же, как @Id.То есть, если вы поместите @Id в поле, вы должны применить @Transient к полю.И если вы применяете @Id к методу получения, вы должны применить @Transient метод.Методы установки всегда игнорируются.

Однако его можно настроить (согласно документации), поэтому убедитесь, что кто-то не сделал ничего странного с типами доступа.

1 голос
/ 05 ноября 2011

В соответствии с этим должно быть достаточно объявить поле / свойство

http://download.oracle.com/javaee/5/api/javax/persistence/Transient.html

Вы пробовали просто аннотировать поле / свойство? Для дальнейшей справки вы должны опубликовать еще несколько фрагментов кода.

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