Gibt es eine annotation zu definieren, die eine multi-column index in jpa2
Hibernate bietet einen Mechanismus zum definieren von mehrspaltigen Indizes über die Tabelle. Gibt es eine Möglichkeit, diese anzugeben, ist ein ORM Agnostiker Mode via JPA oder JPA2 (z.B. mit dem javax.Beharrlichkeit.* APIs)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nein, wie angedeutet, in meine Antwort zu Ihrem Vorherige Frage, es gibt keine standardisierte Methode, die Sie verwenden müssen, Anbieter von Erweiterungen für, die (wenn Sie existieren).
@Column(unique=true)
auferlegt, die einen index auf eine Spalte. Non-unique-Indizes sind nicht unterstützt von JPA 2.0. 2.1+ ist wesentlich vielseitiger.Kam gerade über das gleiche Thema mit Hibernate 4.3.8 mit JPA 2.1 integration.
Es scheint, mjaggard die Antwort richtig ist. Aber das gegebene Beispiel die Nutzung sieht wie folgt aus:
Ich weiß nicht, ob das jemals funktionierte. Ich weiß, dass in meinem Fall mit JPA 2.1 der Wert der
columnList
ist kein array sondern ein String. Also bei mir hat die gewünschte zwei-Säulen-index definiert werden können in der folgenden Weise:Ist, dass, nutzen Sie einfach die Begriffe durch ein Komma trennen Sie die Spalte-Namen in einem einzigen string. Dieser arbeitete für mich mit einer Postgres-DBMS. Ich wieder überprüft und der index erfolgreich erstellt wurde über beide Spalten.
Ja, es ist möglich mit JPA 2.1, wie Sie in den Spezifikationen sehen hier:
http://download.oracle.com/otndocs/jcp/persistence-2_1-pfd-spec/index.html
auf Seite 445 heißt es, dass die
Einem Beispiel der Nutzung kann hier eingesehen werden:
http://java-persistence-performance.blogspot.co.uk/2013/03/but-what-if-im-not-querying-by-id.html
Ist es möglich zu erklären, multi-column index in JPA 2.1 Hier ist ein Beispiel
Entity
Klasse, das veranschaulicht, multi-Spalte-Indizierung.Bitte beachten Sie, dass
columnNames
müssen die Namen der Spalten in der DB, nicht der name des Attributs.