ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
1219
1219
EMPFEHLEN
-
Hallo,
ich habe zwei BusinessObjects die vereinfacht so aussehen
Code java:
Code java:
Jetzt habe ich ein Object von Model1 bei dem der Name und die Liste gesetzt sind. Jetzt möchte ich das dem entsprechende Object aus der DB laden, bei dem der Rest auch gesetzt ist.
Allerdings weiß ich nicht so ganz wie ich die Parameter mit der Liste und der Map bei den Queries setzen soll. Finde auch kein passendes Beispiel im Internet. Es wird zwar gesagt, dass JPA 2.0 Listen unterstützt, aber es kommt dennoch eine Fehlermeldung bei der Liste.
Gruß
SaschaEs ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)
-
02.03.10 21:40 #2
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Hallo,
schau mal hier:
http://www.tutorials.de/forum/java/3...maven-2-x.html
Gruß TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
-
HeyTom,
wie ich generell JPA einsetze ist mir bewusst.
Was ich nicht weiß ist, wie ich mir ein Object anhand einer Liste oder einer Map aus der Datenbank geben lasse.
Beispiel
Code java:
Jetzt hab ich mehrere Personen in der DB.
Ich bekomme von irgendwo einen Namen und eine Map mit Telefonnummern gegeben, aber nicht die Stadt in der er lebt.
Jetzt möchte ich überprüfen, ob in meiner DB eine Person mit diesem Namen und den Telefonnummern steht.
Das muss ja funktionieren, ohne mit alle Personen mit diesem Namen aus der DB geben zu lassen und dann zu kontrollieren, welche jetzt diese Telefonnummern hat.
Also ich möchte einer Query den Namen und die Map mit Telefonnummern geben und dann von der DB, alle Personen bekommen die darauf passen.
In meinem Problem brauche ich das mit einer Liste und mit einer Map, da meine BusinessObjecte vereinfach aussehen wie oben.
Ich hoffe ich konnte mein Problem verständlich erklären.
Gruß
SaschaEs ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)
-
02.03.10 23:22 #4
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Hallo,
Leider nicht so ganz...Ich hoffe ich konnte mein Problem verständlich erklären.
willst du deine Entitäten nach einem bestimmten Key oder oder einem Value in der Map filtern?
Na ja, ausgehend vom oben verlinkten Beispiel;
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
package de.tutorials.user; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.MapKey; import javax.persistence.OneToMany; import lombok.Data; @Data @Entity public class User { @Id @GeneratedValue protected Long id; protected String name; @OneToMany protected Set<Role> roles = new HashSet<Role>(); @OneToMany @MapKey(name="id") protected Map<String, Attribute> attributes = new HashMap<String, Attribute>(); }
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
package de.tutorials.user; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import lombok.Data; @Entity @Data public class Attribute { @Id @GeneratedValue protected Long id; protected String name; protected String value; public Attribute(String name, String value) { super(); this.name = name; this.value = value; } }
Im UserDao:
Code java:1 2 3 4 5 6 7 8
@Override public List<User> findUserByAttribute(Attribute attribute) { List<User> result = em.createQuery( "select u from User u JOIN u.attributes a where a.name=? and a.value=?").setParameter(1, attribute.getName()).setParameter(2, attribute.getValue()) .getResultList(); return result; }
Generiert folgende SQL Abfrage:
Gruß TomCode sql:1
Hibernate: SELECT user0_.id AS id1_, user0_.name AS name1_ FROM USER user0_ INNER JOIN User_Attribute attributes1_ ON user0_.id=attributes1_.User_id INNER JOIN Attribute attribute2_ ON attributes1_.attributes_id=attribute2_.id WHERE attribute2_.name=? AND attribute2_.VALUE=?
Java rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
-
Mal noch ein Beispiel.

Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
public class Test{ public static void main(String arg[]){ Person person = new Person(); person.setName("Name"); Map<String, String> phones = new HashMap<String,String>(); phones.put("handy", "0178-1234567"); phones.put("home", "01234-123456"); person.setPhones(phones); Person person = dao.findByExample(person); } }
Jetzt möchte ich, dass mir die Person aus der DB zurück gegeben wird, die diesen Parametern entspricht, die ich dieser Person gesetzt habe.
In dem Beispiel möchte ich die city wissen, hab den Namen und die Telefonnummern dieser Person. Das heißt ich muss die Person anhand des Namens und der Telefonnummern (bei denen ich nicht weiß wieviele es sind) aus der Datenbank bekommen.
Ich hoffe, jetzt ist es etwas deutlicher.
Gruß
Sascha
EDIT: Ich weiß jetzt halt nicht wie ich das DAO umsetzen soll, also die Query-Abfrage.Es ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)
Ähnliche Themen
-
Google Maps "ReverseGeocoding"-Bsp. auf mehrere Maps anwenden
Von jbender im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 30.03.10, 21:06 -
NHibernate Example Queries
Von CarnivoreCI im Forum .NET DatenverwaltungAntworten: 0Letzter Beitrag: 17.06.08, 14:11 -
Maximum and SQL Queries?
Von SeargentWinters im Forum Relationale DatenbanksystemeAntworten: 0Letzter Beitrag: 03.04.05, 23:44 -
DLL Listen- Absturz, Listen übergeben
Von haemmer im Forum C/C++Antworten: 0Letzter Beitrag: 05.02.04, 21:00 -
Queries verbinden
Von Subwoover im Forum PHPAntworten: 6Letzter Beitrag: 11.09.03, 16:26






Zitieren

Login





