2014-02-13 2 views
0

У меня есть свойство в классе сущности Hibernate, которое помечено как переходное.Свойство объекта наложения, помеченное как переходное время в Hibernate

Теперь, не снимая @Transient, я хочу, чтобы заполнить этот объект, и я использую @Formula .The код ниже

@Entity 
@Table(name = "EXCHANGE_VALIDATION_FIELD_LIST") 
public class ExchangeValidation { 

    @Id 
    @Column(name = "VALIDATION_FIELD_ID", nullable = false) 
    public Integer getId() { 
     return this.id; 
    } 

    @Formula("(select ec from ExchangeCode ec, ExchangeValidation ev where ec.validationFieldId = ev.id") -- 1) 
    @Formula("(select ec from ExchangeCode ec where ec.validationFieldId = id") -- 2) 
    @Transient 
    public ExchangeCode getExchangeCode() { 
    return exchangeCode; 
    } 

} 

Я попробовал 1), а также 2), но до сих пор ExchangeCode объект дает нуль. ExchangeCode - это другой объект.

Может кто-нибудь помочь?

+0

Это должно быть сопоставление @ManyToOne вместо формулы – jbaliuka

ответ

0

Что вы ожидаете от @Transient Annoation?

FYI: a method annotated as @Transient, and will be ignored by the entity managerHibernate Manual

Удалить аннотацию и попробовать с помощью простого запроса, как подсчет строк первой. Обратите внимание, что Formula - это родной SQL, а не HQL!

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