2017-07-28 3 views
1

Ich verwende Hibernate. Ich habe einen dao:Leere Felder werden zur Datenbank gesendet

public interface DmRequestDao extends DaoSupport<DmRequestDomain> 

wo

DmRequestDomain extends JodaIdTrackableBaseEntity<DmRequestDomain> 

und mit @Entity kommentiert wird.

Dies enthält alle Spaltennamen für die Tabelle, die es darstellt.

Dann hat meine Service-Klasse die oben genannten Dao-Objekt autowired. Ich kann die Werte der DmRequestDomain korrekt in der Protokolldatei gedruckt sehen.

Aber wenn ich ein Add über diesen Dao aufrufen, sehe ich in meinen Server-Logs, dass alle leeren Werte gesendet werden.

dmpRequestDao.add(object of DmRequestDomain); 

Was könnte die wahrscheinliche Ursache hier sein.

Die Abfrage, die ich in Server-Logs zu sehen ist

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

Sind Sie sicher, dass diejenigen, „?“ Ist nicht nur Platzhalter sind? Möglicherweise müssen Sie aktivieren, die tatsächlichen Werte in das Protokoll zu drucken – zero01alpha

+0

Ja, das ist aktiviert. Ich kann Werte für andere Tabellen sehen – Yasha

+0

Kannst du noch mehr Code posten? Vielleicht kann die tatsächliche Konstruktion des Domain-Objekts – zero01alpha

Antwort

0

Mit allen Spalten in Insert/Update-Statements ist überwintert/JPA Standardverhalten.

Sie könnten dies ändern, indem Sie die @Entity mit @DynamicInsert und/oder @DynamicUpdate annotieren.

Beachten Sie jedoch, dass diejenigen, Nicht-Standard (nicht JPA) Anmerkungen und die Performance-Auswirkungen sind möglicherweise sogar negativ sein ...

+0

nicht ein Risiko für eine Performance-Beeinträchtigung nehmen. Es ist eine Unternehmens-App. – Yasha

Verwandte Themen