Hibernate хранения производной собственности - PullRequest
1 голос
/ 26 мая 2011

У меня есть класс, сохраненный Hibernate с производным свойством isComplete.

@Entity
class Container {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column
    private Long id;

    @Column private String oneFish;
    @Column private String twoFish;
    @Column private String redFish; 
    @Column private String blueFish;

    public Boolean isComplete(){
        return oneFish != null 
               && twoFish != null  
               && redFish != null 
               && blueFish != null;
    }
}

Как заставить Hibernate сохранить isComplete в базе данных, чтобы другой (не спящий) доступ мог видеть значение?

Ответы [ 2 ]

1 голос
/ 26 мая 2011

Если вы пометили метод с помощью @Column, он будет сохранен (вам может потребоваться указать @AccessType / @Access для объекта)

Но вы не должны этого делать.Сохраните все остальные значения и вычислите isComplete, когда вам это нужно.Это не дорогая операция.Вы даже можете «кэшировать» его в свойстве @Transient Boolean, но оно не обязательно должно попадать в базу данных.

0 голосов
/ 26 мая 2011

Я использую отображения XML Hibernate, но если я правильно понимаю аннотации Hibernate, вы можете аннотировать isComplete () как @Column и предоставлять метод установки без изменений setComplete ().

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