JPA 2.0 Query Problem

  • Themenstarter Gelöschtes Mitglied 5909
  • Beginndatum
G

Gelöschtes Mitglied 5909

Gast
Hallo liebe JPA Freunde,

habe ein kleines Problem:

Es gibt in der Datenbank einen Master und ggf. zum gleichen Master mehrere Detail Sätze (Zeitabhängig)
Master 1 : n Detail

Beide haben eine eigene Entity. Im Detail Satz existiert eine ParentId, sodass Zeitabhängig ein Baum entsteht.

Diese Beziehung habe ich in einer Node Entity gekapselt, die auf beide Tabellen zugreift (@SecondaryTable)

Die Node Entity hat vereinfacht (ID, PARENT_ID, TIME) als Columns

Die Query die ich beim Abfragen verwende ist eine Native Oracle Query um den Baum zusammenzubauen (mit connect by)

Nun zum eigentlichen Problem:

Wenn ich den Detail Satz ändere und damit quasi eine Node im Baum umhänge,
dannach den Baum refreshe, dann ist der Baum nicht richtig(alter Stand). Die Query funktioniert einwandfrei.

Meine erste vermutung: Der Cache

doch:

- Ich habe sowohl den shared cache, also auch den normalen Cache auf None gestellt, Cache size null
(An Zentraler Stelle: Eigene EntityManagerFactory)
- Ich musste den Cache sowieso deaktivieren, da ich mehrere JVMs am laufen habe

Vorläufige Lösung:

- mache ich vor dem query ein EntityManager#clear funktioniert es. Finde ich aber nicht schön

Vermutung:

JPA Identifiziert die Objekte anhand des Primärschlüssels

MatserPK: ID
DetailPK: ID, zwei weitere Spalten (keine davon in der NodeEntity)

JoinColumn ist natürlich die Id

Der NodeEntity habe ich NUR ID als PK gegeben und mit @PrimaryKeyJoinColumn gejoined.
Da sich die ID des Mastersatzes aber nicht ändert, sondern die ParentId nimmt dann JPA an dass es die gleichen Objekte sind???

- wie kann das sein???
- Kann ich mit irgendeiner Annotation eine ID "simulieren"?? (Für den Cache ?) Ist das @MapsKey??
- Liegt das Problem daran, dass ich zwei Entities habe die auf die gleichen Tabelle(n) gehen?
- Wenn ich zwei Clients und zwei server verwende stimmen die master und details sätze (Cache sollte erfolgreich deaktiviert sein)
- Wie kann das überhaupt sein, da ich den Cache ja ganz deaktiviert habe, er sollte doch immer auf die DB gehn? Ist auch so erwünscht

EclipseLink 2.0.1

Dnake im vorraus
 
G

Gelöschtes Mitglied 5909

Gast
Ich dachte eigentlich, dass die IdentityMap von EclipseLink die @Id Annotations verwendet. Sollte ich dass dann bei allen überschreiben oder nur bei der Node? Ich werds morgen mal ausprobieren, Danke
 
G

Gelöschtes Mitglied 5909

Gast
Habs ausprobiert und funktioniert auch nicht mit equals und hashcode über alle felder
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
ARadauer Hibernate Query der Kindelemente, wie bidirektionale Verbindung vermeiden Data Tier 0
E JPA Hibernate Query mit Timestamp hat seltsames Verhalten Data Tier 1
T Named Query Join Data Tier 3
T JPA Query - Verbesserungsvorschlag Data Tier 5
M JPA Query: Kann ich Objekte einer Oberklasse über Objekte der Unterklassen abfragen? Data Tier 5
M JPA 2.0: Query mit der Criteria API: Wie case-insensitive machen? Data Tier 1
T [Hibernate] Named query not found Data Tier 8
byte Hibernate: Query Cache und Assoziationen Data Tier 10
GilbertGrape Probleme mit einem Query (left join) Data Tier 2
M JPA - Query.setFirstResult, Query.setMaxResults - intern? Data Tier 10
N Problem beim initialisieren des Caches Data Tier 0
S JPA Problem mit Cascading Data Tier 1
M Eclipse 4 RCP Hibernate Problem Data Tier 3
C JPA FetchType.LAZY, Relation @OneToMany und Problem mit dem update Data Tier 1
K Problem mit EJBs und Transaktionen Data Tier 0
G JPA: Entity Klasse @JoinColumns Problem Data Tier 2
M JPA Problem: java.sql.SQLSyntaxErrorException: Data Tier 7
H Hibernate Problem mit Lazy Loading bei @OneToMany Collections Data Tier 5
M MySql und JPA-Timestamp Problem Data Tier 8
J Hibernate Problem bei Master-Detail-Tabellen Data Tier 5
A JPA - ManyToMany Problem - keine Unique Mehrfachzuweisungen Data Tier 4
M Problem beim Laden von Objekten, die von anderen Applikationen in eine DB eingefügt wurden Data Tier 5
M Problem mit @Temporal Mapping und SQL Server Data Tier 3
P JPA - HashMap mit Many-to-Many Relation Problem Data Tier 4
B Problem mit @ManyToMany und CascadeType.ALL Data Tier 3
Blackskyliner [JPA][Anfänger] Problem mit Wertzuweisung aus Verbundtabelle Data Tier 2
B Problem mit org.hibernate.LazyInitializationException Data Tier 11
B DatenquellenUpdater extends Thread - Problem mit PermGenSpace Data Tier 5
S Problem beim Insert mit Hibernate Data Tier 9
Y [openJPA] Problem mit Transaktion? Data Tier 2
A @SecondaryTable Problem Data Tier 9
N Problem beim session.flush(); Data Tier 17
Y Postgres und JPA - Primärschlüssel Problem Data Tier 3
P SQL PRoblem Hibernate? Data Tier 8
Y EJB Problem mit Transaktionen Data Tier 7
M Transaction / Session Problem Data Tier 4
P CORBA Problem bei EJB 3.0 Anwendung in Glassfish v3 Data Tier 7
F Problem mit Hibernate Schema Update Data Tier 2
S Lazy loading Problem Data Tier 2
M Insert-Problem mit JPA/Hibernate Data Tier 4
megachucky JPA - Problem mit Persistence Unit / Context Data Tier 1
H Hibernate Problem Data Tier 4
D Performance Problem mit Prepared Statement Data Tier 6
T Problem mit openJPA Data Tier 7
P Problem mit Data Tier 9
GilbertGrape Cascade Problem (Hibernate) Data Tier 3
C JPA Problem mit attributeOverride und mehrspaltigem PK Data Tier 2
B select "neu" statement Problem (jpql) Data Tier 8
boxi Hibernate Lazy Loading Problem Data Tier 2
M Problem mit Hibernate und SLF4J - NoSuchMethodException Data Tier 3
G Connection Problem - WAS 6.1, Hibernate, OS Authentication Data Tier 1
K Hibernate update-Problem Data Tier 36
J hibernate problem Data Tier 14
N Hibernate - Problem mit Update/Insert Data Tier 4
B Problem mit @PersistenceContext Data Tier 4
G Problem with mapped of the tables at one to one relationship Data Tier 8

Ähnliche Java Themen


Oben