2017-02-01 2 views
0

Ich versuche eine Datenbank zuzuordnen Ansicht in eine JPA Entität. Da die Entitäten eine ID benötigen, suche ich nach einer Lösung in StackOverflow und ich fand, dass der beste Ansatz darin besteht, alle Spalten als ID zu setzen.JPA: Zuordnung einer Entität mit einer Dummy-ID

Alles scheint gut zu funktionieren, außer eine der Spalten hat einen Nullwert. Wenn dies auftritt, gibt JPA ein Nullobjekt zurück.

Hat jemand das gleiche Problem? Gibt es eine Möglichkeit, eine Dummy-ID-Spalte anzugeben, die in der Ansicht wirklich nicht vorhanden ist?

Antwort

1

Der beste Weg, dies zu tun ist, die Identitätslogik innerhalb der Ansicht selbst zu platzieren.

Eine Lösung wäre, Datenbankfunktionen wie ROW_NUMBER oder ROWID als Teil der Abfrage der Ansicht zu verwenden. Es gibt natürlich auch andere, aber dies als Teil der Abfrage der Ansicht zu tun, ist am logischsten.

Ich würde jedoch empfehlen Sie solche Entität wie markieren, da die Daten aus einer Ansicht abgerufen werden, die schreibgeschützt ist. Dies verhindert einfach, dass Probleme oder Fehler in Code auftreten, in dem Sie versuchen, eine solche Entität zu ändern, und es ist nicht zulässig.

+0

Ich dachte mit dieser Lösung auch, aber ich hoffe, eine beste "programmatische" Lösung zu finden, die die Ansicht nicht ändern muss, danke;) –

+0

Viel Glück, aber abgesehen von der Verwendung einer '@ IdClass' oder' @ EmbeddedId', um eine Zusammensetzung von Spalten darzustellen, die garantiert nicht-null und eindeutig sind, ist mir keine andere Option bekannt. – Naros

Verwandte Themen