我正在使用Hibernate。
我有道:

public interface DmRequestDao extends DaoSupport<DmRequestDomain>


哪里

 DmRequestDomain extends JodaIdTrackableBaseEntity<DmRequestDomain>


并以@Entity注释。

它包含它代表的表的所有列名。

然后,我的服务类将上述dao对象自动连线。
我可以看到DmRequestDomain的值已正确打印在日志文件中。

但是,当我在此dao上调用add时,在服务器日志中看到所有空值都已发送。

dmpRequestDao.add(object of DmRequestDomain);


这里可能是什么原因。

我在服务器日志中看到的查询是

insert
into
    DM_REQUEST
    (CREATED_BY, CREATED_DATE, MODIFIED_BY, MODIFIED_DATE, version, DISCONNECT_REASON, DISCONNECT_REASON_CODE,  id)
values
    (?, ?, ?, ?, ?, ?, ?, ?,)>

最佳答案

Hibernates / JPA的默认行为是使用Insert / Update-Statements中的所有列。

您可以通过使用@DynamicInsert和/或@DynamicUpdate注释@Entity来更改它。

但是,请注意,这些是非标准(非JPA)注释,其性能影响甚至可能是负面的。

10-01 11:46