2017-02-01 2 views
-1

Wenn ich eine Datenbank mit Tonnen von Tabellen und Tonnen von Feldern in jeder der Tabellen haben, ABER ich nur mit wenigen der Tabellen arbeiten muss, und mit wenigen die Felder darin.jpa mit begrenzten Tabellen/Felder im Vergleich zu tatsächlichen Tabelle

Kann ich "abgekratzte" JPA-Entitäten machen und trotzdem Hibernate/jpa damit arbeiten?

fx: wenn ich mit einem Tisch, das ist Arbeit hat 10 verschiedene Felder, aber ich brauche nur auf zwei der Felder „get“ zu tun und sich nie ändern/aktualisieren alles - nur lesen

  • kann ich machen eine Entitätsklasse, die funktionieren wird, wenn sie nur 2 der Felder enthält, oder muss ich alle Felder hinzufügen, damit sie funktioniert, obwohl 80% nie benutzt/gelesen wird?

der db:

Tabellenname = test

+------+------+------+------+------+ 
|field1|field2|field3|field4|field5| 
+------+------+------+------+------+ 
|  |  |  |  |  | 
+------+------+------+------+------+ 

die Java-Einheit

@Entity 
public class test { 
    private String field1; 
    private String field2; 
} 

würde das funktionieren?

Antwort

2

Sie müssen keine Entitäten für jede Tabelle oder Felder für jede Spalte erstellen, daher sollte die vorgeschlagene Lösung funktionieren.

Es gibt jedoch einige Legacy-Tabellen, die ein wenig nervig sein können, zum Beispiel, wenn Sie primäre und fremde Primärschlüssel haben, aber fast alles ist machbar, solange Sie wissen, wie man es mit JPA modelliert.

+0

Um diese Antwort hinzuzufügen, markieren Sie die Entität als "@ Unveränderlich", da diese als schreibgeschützt betrachtet werden, um Fehler bei der Änderung der Daten zu vermeiden, wenn sie nicht beabsichtigt sind. – Naros

+0

Beachten Sie, dass "@ Unmutable" Hibernate-spezifisch ist, aber wenn Sie reine JPA benötigen, sollte '@Column (updatable = false, insertable = false, ...)' auch den Trick leisten – crizzis

Verwandte Themen