Я создаю приложение J2SE с EJB3 и DB Express Express Edition.EJB3 - @Column (insertable = "false") question
Моя проблема в том, что я устанавливаю EntityBean в моем проекте, который соответствует таблице в БД. Таблица содержит столбец, который не имеет значения NULL и имеет значение по умолчанию. Все, что я хочу, это то, что при сохранении новых данных в этой таблице с помощью EJB значение столбца получит свое значение по умолчанию. Это, как я поставил его в проекте:
//holds user's first name
@Basic(optional = true)
@Column(name = "FIRST_NAME", insertable = false, updatable = true, nullable = false)
private String m_firstName;
Я также установить его в файле ORM.XML:
<basic name="firstName">
<column name="FIRST_NAME" insertable="false" updatable="true" nullable="false"/>
</basic>
Но по какой-то причине, при создании нового EntityBean и не установив первый имя поля, а затем пытается упорствовать его, я получаю следующее исключение:
Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.1 (Build b60e-fcs (12/23/2008))): oracle.toplink.essentials.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: ORA-01400: cannot insert NULL into ("TSDB"."USERS"."FIRST_NAME")
это означает, что менеджер живучесть пытается вставить первое поле имя, хотя я сказал, что не.
Я делаю что-то неправильно здесь?
Спасибо!