Hibernate @Index

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,

ich veruche meiner Tabelle über die @Index Annotation einen Indize zu zuweisen:

Code:
@Column(name = "col1")
@Index(name = "idx_col1")
public int getCol1()
{
    return col1;
}

Meine Hibernate Config ist auf <property name="hibernate.hbm2ddl.auto">update</property> gestellt und die Tabelle die den Index bekommen soll habe ich gelöscht das Sie auch problemlos von Hibernate angelegt werden kann ...

Wenn ich mein Programm nun starte, legt er mir zwar die Tabelle an, ignoriert aber die @Index Annotation.
Habe auch schon versucht ihm die Indexe in der @Table Annotation unterzujubeln - ignoriert er allerdings ebenfalls.

Weiss jemand Rat wie ich meiner Tabelle per hibernate Indizes zuweisen kann?
 

klarkimming

Mitglied
Hallo,

der Thread ist zwar etwas alt aber ich habe momentan das selbe Problem....

Umgebung:

Java 1.6
Hibernate 3.2.4
Postgres 8.3.3

Code:
@Entity
//@org.hibernate.annotations.Table(appliesTo="TestIndex", indexes = { @Index(name="testspaltemain", columnNames={"testspalte"} ) } )
public class TestIndex {

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "primaryKeySequence")
    @SequenceGenerator(name = "primaryKeySequence", sequenceName = "primaryKey_SEQ", allocationSize = 100)
    @Column(name = "UserPersistence_PK", insertable = false, updatable = false)
    private long _primaryKey;

    @Column(name = "InsertDate")
    @Temporal(value = TemporalType.TIMESTAMP)
    private Date _InsertDate;

    @Column(name = "UpdateDate")
    @Temporal(value = TemporalType.TIMESTAMP)
    private Date _UpdateDate;

    @Column(name = "Version")
    @Version
    private Integer _Version = 1;

    @PrePersist
    private void __jpaPrePersist() {
        _InsertDate = new Date();
        _UpdateDate = new Date();
    }

    @PreUpdate
    private void __jpaPreUpdate() {
        _UpdateDate = new Date();
    }

    @Column(name ="testspalte")
    @Index(name = "TESTHIBERNATE")
    private String _testSpalte;

}

Code:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"/test.spring.xml"})
public class TestUnit {

    @PersistenceContext
    private EntityManager _entityManager;

    @Test
    @Transactional
    @Rollback(value = false)
    public void test() {
        Assert.assertTrue(true);
        TestIndex test = new TestIndex();
        _entityManager.persist(test);
    }
}

Code:
<?xml version="1.0" encoding="UTF-8" ?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
   <persistence-unit name="businessplan">
        <description>
        </description>
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>
            <property name="hibernate.show_sql" value="true"/>
            <property name="hibernate.hbm2ddl.auto" value="update"/>
        </properties>
    </persistence-unit>
</persistence>


Das Ergebnis ist, dass die Tabelle korrekt erstellt wurde. Aber der Index nicht vorhanden ist!!!!!

Wo koennte das Problem liegen ?

Hat schon mal jemand mit der "Index" oder "Table" Annotation unter "Benutzung von JPA" einen Index erstellt ? Wenn, ja welche Umgebung ?

Bin irgendwie am verzweifeln ... (google hiflt auch nicht...)
 

GilbertGrape

Bekanntes Mitglied
Hallo Klarkimming,

ich kann dir leider nicht helfen, aber ich benutze auch Indizes unter Hibernate und bei mir funktioniert das.
Ich benutze Java 1.5, Hibernate 3 und Oracle 11g.
Achso, ich annotiere die Indexspalte dann nicht mehr mit @Index.
Also dann nur noch so:

Code:
@Column(name ="testspalte")
        private String _testSpalte;

Der Index heißt doch schon testspaltemain.
 

klarkimming

Mitglied
Danke schon mal fuer den Hinweis...

Du meinst also, dass du den Index per "Table" Annotation setzt ? (Hatte beide Varianten ausprobiert, "Table" war im Bsp. auskommentiert).

Nur um ganz sicher zu gehen, dein DB Manager zeigt den Index auch an ? Ich weiss dumme Frage... aber ich habe bereits mit einigen Personen gesprochen, die sagten das funktioniert bei Ihnen und dann kam die boese Ueberaschung....
 

GilbertGrape

Bekanntes Mitglied
Hallo,

ja, ich habe den Index über die Table-Annotation von Hibernate gesetzt. So:
Code:
@org.hibernate.annotations.Table(appliesTo="UNMODIFIED_TEXT", 
    indexes=@org.hibernate.annotations.Index(name="idx_unmod_text_hash", 
        columnNames={"HASH_VALUE"}))

und mir wird der Index dann im SQL-Developer angezeigt:

gml4m5p2_jpg.htm


Ich hab ihn auch wirklich nur per hibernate angelegt :wink:
 

klarkimming

Mitglied
Danke fuer die Antworten...

Das hat mich motiviert noch tiefer zu suchen und tatsaechlich der "Fehler" ist gefunden...
Code:
 <property name="hibernate.hbm2ddl.auto" value="update"/>

Dann wird der Index nicht angelegt.

mit
Code:
 <property name="hibernate.hbm2ddl.auto" value="create"/>

wird der Index angelegt.

Selbst wenn die Tabelle nicht existiert wird der Index bei "update" nicht anglegt...

DANKE nochmals fuer die Motivation weiter zu suchen...

[/quote]
 

GilbertGrape

Bekanntes Mitglied
Vielen Dank, dass du die Lösung hier nochmal hingeschrieben hast.
Das wusste ich nicht und vielleicht brauch ich das nochmal!
 
M

murkus H.

Gast
Weiss zufällig jemand, ob dies mit einer neuen Hibernate Version auch mit dem "update" shema update möglich ist?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Hibernate / JPA Index hinzufügen Datenbankprogrammierung 1
P Oracle Hibernate - Oracle-VarChar-Index wird nicht genutzt Datenbankprogrammierung 3
C Hibernate Objekte per Index ansprechen Datenbankprogrammierung 4
K Hibernate Criteria Restrictions.in("...","..") - Fehlender In- oder OUT-Parameter auf Index:: 1 Datenbankprogrammierung 3
torresbig MySQL hibernate - could not resolve entity class ... (Datenbank Anfänger) Datenbankprogrammierung 19
I Hibernate Predicate mit IN Clause "Unaware how to convert value to requested type" Datenbankprogrammierung 0
T org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: ..., could not initialize proxy - no Session Datenbankprogrammierung 5
T Realisierungsvorschläge Hibernate SQL Datenbankprogrammierung 1
Zrebna Wie mittels Hibernate eine Join-Tabelle als eigene Java-Klasse erstellen? Datenbankprogrammierung 5
Zrebna Tabellen-Erzeugung via Hibernate ignoriert 'CascadeType' settings Datenbankprogrammierung 1
I Hibernate / JPA - Spaltenname von Query (Select) bekommen Datenbankprogrammierung 6
M Mysql Views und Hibernate Caching Datenbankprogrammierung 4
damike84 Hibernate: persistieren eines Graphen Datenbankprogrammierung 2
N Hibernate Entitäten bei Selects aus 2 Tabellen Datenbankprogrammierung 7
OnDemand Hibernate Realationen Datenbankprogrammierung 7
OnDemand Hibernate ManyToOne Datenbankprogrammierung 5
D Hibernate oneToMany Syntaxfehler Datenbankprogrammierung 3
D Hibernate Error: NoSuchMethodError Datenbankprogrammierung 4
D hibernate mit postgreSQL Datenbankprogrammierung 3
S MySQL Hibernate: Fehler bei Verwendung von 2 unterschiedlichen Enumration Datenbankprogrammierung 3
F Problem mit Hibernate c3p0 Datenbankprogrammierung 2
OnDemand MySQL Trigger löst nicht aus bei Hibernate Update Datenbankprogrammierung 12
OnDemand Hibernate OneToMany ManyToOne Datenbankprogrammierung 61
J Hibernate One-To-One mit Where Klausel Datenbankprogrammierung 6
L hibernate.cfg.xml Could not parse configuration Datenbankprogrammierung 0
L H2 Hibernate definieren? Datenbankprogrammierung 1
T JPA Mapping Enum (hibernate 5) Datenbankprogrammierung 1
H In hibernate.cfg.xml schreiben und auslesen Datenbankprogrammierung 0
K Hibernate: Ein Fluch Datenbankprogrammierung 3
K Java Object mit Hibernate in MySQL abspeichern Datenbankprogrammierung 1
K Eclipse: JBoss Hibernate Tool: Kein Zugriff auf Datenbank Datenbankprogrammierung 5
S JpaRepositories & Hibernate: ungewolltes trim() in findBy Datenbankprogrammierung 7
S MySQL hibernate exception: illegal state exception : entityManagerFactory is closed Datenbankprogrammierung 5
S Hibernate: Verschiedene Klassen zurückgeben. Datenbankprogrammierung 2
looparda Architektur für JPA Hibernate Umstieg Datenbankprogrammierung 14
O HSQLDB Hibernate Criteria Problem Datenbankprogrammierung 3
perlenfischer1984 Hibernate mit final members Datenbankprogrammierung 3
perlenfischer1984 Java Objecte speichern mit Hibernate ? Datenbankprogrammierung 2
N SQLite Hibernate und Aufruf von Funktion SELECT last_insert_rowid() Datenbankprogrammierung 2
N Sqlite3 und Hibernate Datenbankprogrammierung 3
A Hibernate Cache leeren Datenbankprogrammierung 4
I MySQL Hibernate zu viele Queries Datenbankprogrammierung 2
Psypsy Hibernate / JPA erkennen von schon gespeicherten Objekten Datenbankprogrammierung 4
Psypsy Hibernate / JPA OneToOne MappedBy Frage Datenbankprogrammierung 2
J Hibernate + DTOs - DTOs in DAOs verwenden? Datenbankprogrammierung 1
S Hibernate-Konfiguration : Unverständliche Ausgabe beim Ausführen Datenbankprogrammierung 0
I MySQL Hibernate / MySQL alias in WHERE clause Datenbankprogrammierung 1
J Hibernate + HSQL embedded Datenbankprogrammierung 2
P Hibernate Einstieg Datenbankprogrammierung 5
C Hibernate und createQuery Datenbankprogrammierung 2
V kennt jemand empfehlenswerte online tutorials zur Hibernate ? gerne auch englisch. Datenbankprogrammierung 4
G H2 Hibernate - wie joins machen Datenbankprogrammierung 1
D Hibernate: Zustand eines Objekts erkennen? Datenbankprogrammierung 0
D Unterschiede Hibernate Vs. Java Persistence API Datenbankprogrammierung 8
X Hibernate Cache Verständnisproblem Datenbankprogrammierung 0
T Hibernate und inner class Datenbankprogrammierung 0
K n:m Tabellen mit Hibernate erstellen Datenbankprogrammierung 1
T Hibernate DAO gute Tutorials/Bücher gesucht Datenbankprogrammierung 0
C Hibernate: could not resolve property Datenbankprogrammierung 1
J Plug-In-Framework für Hibernate-Klassen Datenbankprogrammierung 0
M Hibernate - Save Child wenn nötig Datenbankprogrammierung 10
M DAO's + Hibernate Theorie Datenbankprogrammierung 4
T Hibernate, HSQLDB und UNIQUE Datenbankprogrammierung 2
F Hibernate - verschiedene Schemen Datenbankprogrammierung 7
D Hibernate SaveOrUpdate Exception Datenbankprogrammierung 2
D Hibernate CreateQuery ohne Result Datenbankprogrammierung 7
E MySQL Hibernate mit JaxWS führt zu LazyInitialization Exception Datenbankprogrammierung 8
L Einarbeitung in Hibernate -> wenn gute SQL Kenntnisse vorhanden? Datenbankprogrammierung 2
B DB2 Hibernate findet Datenbank nicht Datenbankprogrammierung 18
K JPA / Hibernate Annotations Datenbankprogrammierung 4
M JPA / Hibernate mit Postgres DB Datenbankprogrammierung 3
P JSF + H2 + TomEE + Hibernate/JPA Datenbank wird nicht angelegt Datenbankprogrammierung 3
E MySQL Hibernate ( Anfänger ) Datenbankprogrammierung 3
P Lazy-Fetchig und Session-Problem mit Hibernate Datenbankprogrammierung 4
J Hibernate Select auf Parameterliste Datenbankprogrammierung 3
C Hibernate ManyToMany zusammengesetzter Primärschlüssel, problem. Datenbankprogrammierung 3
M Hibernate Foreign Key definieren Datenbankprogrammierung 4
M Abstrakte Klassen Hibernate Datenbankprogrammierung 4
D Mit Hibernate (mit Annotation) auf Views zugreifen Datenbankprogrammierung 2
M [Hibernate]Abgleich eines lokalen Objekts mit dem Zustand aus der Datenbank. Datenbankprogrammierung 3
P Mit Hibernate mehrere Datensätze löschen Datenbankprogrammierung 7
P Probleme mit meinem 1. Hibernate Beispiel Datenbankprogrammierung 3
P erste Schritte mit Hibernate Datenbankprogrammierung 3
V Hibernate Interfaces von anderem Projekt Datenbankprogrammierung 2
J MySQL Datenbank konfigurieren, JDBC, MySQL oder Hibernate Datenbankprogrammierung 2
B Hibernate und portierbare Datenbank Datenbankprogrammierung 3
qwerqer [Hibernate] Mappingvarianten Datenbankprogrammierung 2
lumo Teneo Hibernate & JPA Datenbankprogrammierung 15
Z JPA mit Hibernate - Unable to build EntityManagerFactory Datenbankprogrammierung 7
Dit_ Hibernate, effiziente SQL-Abfrage definieren Datenbankprogrammierung 5
K Hibernate vs. JDBC Datenbankprogrammierung 4
J Hibernate Info 593 ? Datenbankprogrammierung 4
J Erstellen der SessionFactory in Hibernate 4.1 Datenbankprogrammierung 2
L PostgreSQL Hibernate-Frage Datenbankprogrammierung 2
X MySQL Hibernate: Massenupdate auf unbekannte Tabelle Datenbankprogrammierung 4
N hibernate: datasource Datenbankprogrammierung 7
H MySQL Hibernate: Updaten vereinfachen Datenbankprogrammierung 2
T Hibernate Division zweier Summen Datenbankprogrammierung 4
B MySQL Fehler: Cannot open connection mit Tomcat7, Hibernate und MySQL Datenbankprogrammierung 4
F GWT und Hibernate - gwt.dev.Compler not found Datenbankprogrammierung 3

Ähnliche Java Themen

Neue Themen


Oben