2013-01-18 9 views
5

Sie erstellen müssen Ich brauche einen Index anoatation für den Primärschlüssel einer Hibernate-Tabelle für ordentliche Leistung hinzuzufügen, nahm ich an, dass ein Feld mit @id Markierung ein bedeuten würde Index wurdeHaben Sie Index auf der @id Spalte einer Tabelle Hibernate

erstellt
@Id 
private String guid; 

aber ich nicht nichts bemerken in der DDL erstellt werden, die

erzeugt wurde aber wenn ich eine @index Anmerkung hinzugefügt

@Id 
@org.hibernate.annotations.Index(name = "IDX_GUID") 
private String guid; 

dann mache ich Bekanntmachung ein Index wird in der DDL erstellt.

Also ich denke, ich muss dies für jeden Tisch tun, aber ein Teil von mir denkt, ist dies wirklich notwendig als sicherlich Winterschlaf würde Indizes für den Primärschlüssel als Ausgangspunkt erstellt werden wollen?

Antwort

6

Sie müssen nicht explizit Index erstellen. Anstatt DDL-Anweisungen zu sehen; Ich empfehle Ihnen, das endgültige Schema zu überprüfen, das von Hibernate erstellt wurde. Der Index wird als Teil der create table-Anweisung erstellt.

+0

@Deepak, nur mein Verständnis zu bestätigen, werden Sie sagen, dass Indexerstellung nicht als Teil der DDL (hbm2ddl) Exportprozess behandelt wird? Wenn ja, würde das DDL weitgehend nutzlos machen, oder fehle ich hier etwas? Danke – paulkmoore

+0

@paulkmoore Wir können den Index auf zwei Arten erstellen; nämlich. "Create index ..." oder beim Erstellen der Tabelle können wir angeben .. Alles was ich sage ist, dass in diesem Fall der Index für den Primärschlüssel beim Erstellen der Tabelle erstellt wird. – Deepak

+0

@Deepak, Ok danke, mir fehlte der Unterschied zwischen den Primärschlüsselindizes und anderen (allgemeinen) Indizes. Danke für die Hilfe. – paulkmoore

Verwandte Themen