-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 5 posts ] 
Author Message
 Post subject: Spalte indizieren mit Annotations
PostPosted: Sun Sep 21, 2008 10:25 am 
Newbie

Joined: Wed Sep 17, 2008 5:26 pm
Posts: 17
Ich habe eine einfache Klasse wie folgt annotiert:
Code:
@javax.persistence.Entity
public class User implements IsSerializable {

   @javax.persistence.Id
   @javax.persistence.GeneratedValue( strategy = javax.persistence.GenerationType.IDENTITY )
   public long id;
   @javax.persistence.Column(length=80,nullable=false,unique=true)
   @org.hibernate.annotations.Index(name="email")
   public String email;
   @javax.persistence.Column(length=70,nullable=false)
   public String username;
   @javax.persistence.Column(length=70,nullable=false)
   public String password;
   
   public User() {}
   
   public User( String username, String password ) {
      this.username = username;
      this.password = password;
   }
...der Rest kommt hier...


Da ich MySQL benutze sieht das Ergebnis wie folgt aus:

Code:
mysql> describe User;
+----------+-------------+------+-----+---------+----------------+
| Field    | Type        | Null | Key | Default | Extra          |
+----------+-------------+------+-----+---------+----------------+
| id       | bigint(20)  | NO   | PRI | NULL    | auto_increment |
| email    | varchar(80) | NO   | UNI | NULL    |                |
| password | varchar(70) | NO   |     | NULL    |                |
| username | varchar(70) | NO   |     | NULL    |                |
+----------+-------------+------+-----+---------+----------------+


Ist die Spalte "email" nun indiziert oder nicht? Also ist die Tabelle äquivalent zu einer Tabelle die ich mit folgendem SQL Befehl erstellt hätte:

create table User (id INT UNSIGNED NOT NULL AUTO_INCREMENT, username VARCHAR(70) NOT NULL, password VARCHAR(70) NOT NULL, email VARCHAR(80) NOT NULL, PRIMARY KEY(id), INDEX( email(10) ) );

Desweiteren: Wenn email indiziert wird, wieviele Stellen des varchar-Feldes werden denn dann indiziert? In meinem SQL-Befehl direkt sind es ja 10 Zeichen.


Top
 Profile  
 
 Post subject:
PostPosted: Mon Sep 22, 2008 6:23 am 
Expert
Expert

Joined: Thu Jul 05, 2007 9:38 am
Posts: 287
aktivier doch einfach das ddl-logging und schau dir an, was für ein create statement Hibernate absetzt.

_________________
Please rate useful posts.


Schauderhaft: Softwaredevelopment, Projectmanagement, Qualitymanagement and all things "schauderhaft"


Top
 Profile  
 
 Post subject:
PostPosted: Fri Sep 26, 2008 6:15 am 
Newbie

Joined: Wed Sep 17, 2008 5:26 pm
Posts: 17
Ich habe das SQL logging nun mit "<property name="show_sql">true</property>" in der hibernate.cfg.xml aktiviert. Leider taucht dort nicht der SQL Befehl create auf. Und es ist auch keine Spalte als index markiert.


Top
 Profile  
 
 Post subject:
PostPosted: Sat Sep 27, 2008 5:01 am 
Expert
Expert

Joined: Thu Jul 05, 2007 9:38 am
Posts: 287
toom wrote:
Ich habe das SQL logging nun mit "<property name="show_sql">true</property>" in der hibernate.cfg.xml aktiviert. Leider taucht dort nicht der SQL Befehl create auf. Und es ist auch keine Spalte als index markiert.


Falsche property. Dies liefert dir nur DML statements, also insert, update, delete und selects

Was du brauchst sind die ddl-statements.
Du musst in der Log4j Konfiguration den Loglevel von
org.hibernate.tool.hbm2ddl auf TRACE oder DEBUG setzen

Details stehen im Kapitel 3.5. Logging in der Referenz: http://www.hibernate.org/hib_docs/core/ ... ml_single/

Enjoy

_________________
Please rate useful posts.


Schauderhaft: Softwaredevelopment, Projectmanagement, Qualitymanagement and all things "schauderhaft"


Top
 Profile  
 
 Post subject:
PostPosted: Thu Oct 02, 2008 4:11 pm 
Newbie

Joined: Wed Sep 17, 2008 5:26 pm
Posts: 17
Danke für die Antwort. Geht es auch ohne Log4J? Ich benutze simple statt dessen.


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 5 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.