2015-12-23 5 views
0

Я использую Hibernate 4.3.6.Final, JPA 2.1, MySQL 5.5.37 и Spring 3.2.11.RELEASE. У меня есть объект со следующим полем и геттер (не сеттера) ...JPA: Как запретить запись поля в базу данных?

@Column(name="CREATED_ON") 
private java.util.Date createdOn = new java.util.Date(); 

public java.util.Date getCreatedOn() 
{ 
    return createdOn; 
} // getCreaetdOn 

Я заметил, когда я исполняю JPA сохранить транзакции, например ...

public T save(T obj) 
{ 
    if (obj != null) 
    { 
     final T id = (T) getId(obj); 
     if (id == null) 
     { 
      m_entityManager.persist(obj); 
     } 
     else 
     { 
      obj = m_entityManager.merge(obj); 
     } // if 
    } // if 
    return obj; 
} 

Hibernate/JPA будет пытаться написать « NULL "в поле" CREATED_ON "в инструкции INSERT. Как настроить элементы в JPA, чтобы, если значение отсутствует, оно вообще не пытается записать значение? Причина, по которой я спрашиваю, заключается в том, что по умолчанию значение установлено в значение «CURRENT_TIMESTAMP» MySQL, и это значение не используется, если введен явный «NULL».

Спасибо, - Дэйв

ответ

0

Попробуйте это для отображения поля

@Column(name="CREATED_ON", insertable = false, updateable = false)