-->
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.  [ 3 posts ] 
Author Message
 Post subject: Ordnen von Datensätzen (einer Tabelle) anhand der ID
PostPosted: Tue Apr 07, 2009 1:21 pm 
Newbie

Joined: Tue Apr 07, 2009 1:12 pm
Posts: 2
Need help with Hibernate? Read this first:
http://www.hibernate.org/ForumMailingli ... AskForHelp

Hibernate version: Hibernate 3

Mapping documents:
package contacts;


import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OrderBy;
import javax.persistence.SequenceGenerator;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@SequenceGenerator(name = "contact_id", sequenceName = "contact_seq", initialValue = 1, allocationSize = 1)
public class Contact {

@Id
@OrderBy(value="id asc")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator="contact_id")
@Column(name = "CONTACT_ID")
private Long id;

@Column(name = "VORNAME")
private String Vorname;

@Column(name = "NAME")
private String Name;

@Column(name = "ANSCHRIFT")
private String Anschrift;

@Column(name = "ORT")
private String Ort;

@Column(name = "TELNR")
private String TelNr;

@Column(name = "HANDYNR")
private String HandyNr;

@Column(name = "MAIL")
private String Mail;

@Temporal(TemporalType.DATE)
@Column(name = "GEBDATUM")
private java.util.Date GebDatum;

public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

public String getVorname() {
return Vorname;
}

public void setVorname(String vorname) {
Vorname = vorname;
}

public String getName() {
return Name;
}

public void setName(String name) {
Name = name;
}

public String getAnschrift() {
return Anschrift;
}

public void setAnschrift(String anschrift) {
Anschrift = anschrift;
}

public String getOrt() {
return Ort;
}

public void setOrt(String ort) {
Ort = ort;
}

public String getTelNr() {
return TelNr;
}

public void setTelNr(String telNr) {
TelNr = telNr;
}

public String getHandyNr() {
return HandyNr;
}

public void setHandyNr(String handyNr) {
HandyNr = handyNr;
}

public String getMail() {
return Mail;
}

public void setMail(String mail) {
Mail = mail;
}

public Date getGebDatum() {
return GebDatum;
}

public void setGebDatum(Date gebDatum) {
GebDatum = gebDatum;
}

}


Name and version of the database you are using:
h2
version:1.1.110


Hey,

ich habe mich mal an hibernate versucht.
habe es meiner meinung nach auch schon ganz schön weit gebracht ;-)
Also ich habe eine Klasse (siehe oben) in der ich Kontakte verwalten will.
Die Datenbank ist eine h2 (standalone)
Wenn ich jetzt einen neuen Kontakt hinzufüge wird wie man ja aus den annotations erkennen kann eine id automatisch generiert.
Die Tabelle ist aber komplett durcheinander gewürfelt.
das geht sogar so weit, dass wen ich einen neuen datensatz anlege er einfach wahrlos in die tabelle (zb an position 3 von 20) geschrieben wird.

Wie bekomme ich es hin, dass die Tabelle Contact in abhängigkeit von der id geordnet (sortiert) wird?

Meine Add element Methode:

public void addElement(String vname, String name, String As, String plz, String ort, String tn, String hn, String m, String ds){
try {
session.beginTransaction();
System.out.println("Inserting Record");
Contact contact = new Contact();
contact.setVorname(vname);
contact.setName(name);
contact.setAnschrift(As);
contact.setOrt(ort);
contact.setTelNr(tn);
contact.setHandyNr(hn);
contact.setMail(m);
try{
Date d = new SimpleDateFormat("dd.MM.yyyy").parse(ds);
contact.setGebDatum(d);
}
catch(Exception e){}
session.save(contact);
session.getTransaction().commit();
System.out.println("Done");
} catch (Exception e) {
e.printStackTrace();
}
}


public List getTable(){
try {
List result = session.createQuery("from Contact").list();
return result;
} catch (Exception e) {
System.out.println(e.getMessage());
}
return null;
}

Mit freundlichen grüßen
dynay


Top
 Profile  
 
 Post subject:
PostPosted: Tue Apr 07, 2009 1:34 pm 
Expert
Expert

Joined: Thu Jan 08, 2009 6:16 am
Posts: 661
Location: Germany
Also wie es auf Ebene der DB geht, weiß ich nicht wirklich, sollte einen normalerweise auch nicht interessieren, da man die Ergebnismenge mit der Abfragesprache beeinflussen kann. Viele DBs machen es wahrscheinlich auch automatisch, da sie einen sortierten Index über die Ids anlegen, um schnell darin suchen zu können. Wie es bei H2 ist, keine Ahnung.

In deinem Fall musst du die Query einfach um ein order by erweitern: "from Contact order by id"

_________________
-----------------
Need advanced help? http://www.viada.eu


Top
 Profile  
 
 Post subject:
PostPosted: Tue Apr 07, 2009 4:28 pm 
Newbie

Joined: Tue Apr 07, 2009 1:12 pm
Posts: 2
Hey

Danke für deine Antwort.
Das ich die Ergebnise einer Abfrage mit orderby sortieren kannte ich schon.
Ich war aber mit blindheit geschlagen...
Nachdem ich in den entsprechenden Methoden(zB getTable) die query um order by id erweitert habe, läuft alles so wie es soll.

Besten Dank!!!

MfG
dynay


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 3 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.