JPA, Primary Key wird nicht in relationstabelle erstellt

shoehmi

Neues Mitglied
hallo leute,

bin neuling im JPA bereich. Schreibe gerade eine Anwendung wo ich JPA verwende. Als Framework nutze ich "Play". Das Framework liefert eine Klasse "Model" die auf JPA/Hibernate aufbaut und einiges vereinfacht.

Mein Problem:

Ich habe probleme mit zwei Tabellen:
- PeriodicalPayment
- Transaction

Transaction speichert einfach nur Kontobewegungen aller Art.
PeriodicalPayment speichert Daueraufträge.

Da die Transactiontabelle unabhängig bleiben soll darf da kein PeriodicalPayment schlüssel rein.
Also brauch ich eine neue Tabelle die mir JPA automatisch erstellt über eine Relation.
Er legt mir auch eine Tabelle für die Realtion an aber leider ohne Primarykey. Und das meckert
mir MySQL an und ist auch nicht schön.


wie kann ich einen Primarykey definieren ohne eine extra Klasse "PeriodicalPaymentTransaction" zu benutzen???

Klasse PeriodicalPayment:

Java:
package models;

import play.*;
import play.db.jpa.*;

import javax.persistence.*;

import java.util.*;

@Entity
public class PeriodicalPayment extends Model {
	
    @ManyToOne
    public Account account;
    
    @OneToMany(cascade = CascadeType.ALL)
    public List<Transaction> transactions;
    
	public int amount;	
	public String currency;
	public Date startAt;
    public Date createdAt;		
    public int periodType;
    
    public PeriodicalPayment(Account account, int amount, String currency, Date startAt, int periodType ) {
        this.account = account;
    	this.transactions = new ArrayList<Transaction>();        
        this.amount = amount;
        this.currency = currency;
        this.startAt = startAt;
        this.createdAt = new Date();        
        this.periodType = periodType;	        
    }
    
}

Klasse Transaction:

Java:
package models;

import play.*;
import play.db.jpa.*;

import javax.persistence.*;

import java.util.*;

@Entity
public class Transaction extends Model {
	public int amount;	
	public String currency;
    public Date createdAt;		
    
    @ManyToOne
    public Account account;

    public Transaction(Account account, int amount, String currency) {
        this.account = account;
        this.amount = amount;
        this.currency = currency;
        this.createdAt = new Date();	        
    }
    
}

mfg
 

theCoon

Mitglied
Hi,

also einen primarykey kannst du folgendermaßen definieren:
Java:
public class deineKlasse {
@Id
@Column (name = "deineKlasse_ID")
@Generatedvalue (strategy= "such dir eine aus")
private long id;
...
}

wenn du in beide klassen so einen primary key definiert hast, kannst du bei deiner liste transactions noch die
@JoinTable Annotation hinzufügen, das sieht dann so aus:
Java:
@OneToMany(cascade = CascadeType.ALL)
@JoinTable(
   name = "irgendEinTabellenName",
   joincolumns= @JoinColumn(name = "PPID",referencedColumnName="PP_ID"), //das zweite ist der Columnname deiner Id
   inversejoincolumns=@JoinColumn(name ="TransactionID", referencedColumnName="Trans_ID"))
   public List<Transaction> transactions;

nur @JoinColumn anstatt @JoinTable würde denke ich auch gehen, aber JoinTable ist meiner meinung nach leichter lesbar da alle information dortstehen.

gruß
 

c2delegate

Mitglied
Hi,

also einen primarykey kannst du folgendermaßen definieren:
Java:
public class deineKlasse {
@Id
@Column (name = "deineKlasse_ID")
@Generatedvalue (strategy= "such dir eine aus")
private long id;
...
}
...

Bääääm! Benutz bitte keine primitiven Datentypen! Hier im Bespiel
Java:
private long id;
sondern
Java:
private Long id;
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
O HOW TO INSERT PRIMARY INTO ANOTHER TABLE AND USE IT AS FOREIGN KEY TO DISPLAY DATA IN A RELATIONSHIP Datenbankprogrammierung 3
J MySQL - Primary Key Date,Time vs ID Datenbankprogrammierung 16
J SQL PRIMARY KEY unique Datenbankprogrammierung 5
L H2 Auto INC Primary Key & Insert Datenbankprogrammierung 8
G Primary key automatisch hochzählen Datenbankprogrammierung 9
G Primary key ID ermitteln? Datenbankprogrammierung 2
Y Probleme mit H2 und Primary Key Datenbankprogrammierung 4
M Kundennummer als Primary Key? Datenbankprogrammierung 43
G Herausfinden des Primary Keys nach INSERT-Kommando? Datenbankprogrammierung 4
S PRIMARY KEY erfragen Datenbankprogrammierung 3
D Primary-Key -> Fehler: "Unique constraint violation& Datenbankprogrammierung 12
A Primary Key Eigenschaft herausfinden Datenbankprogrammierung 2
M Primary Key ändern Datenbankprogrammierung 6
D JOIN COLUMN wird nicht genommen Datenbankprogrammierung 2
Maxim6394 JPA / EclipseLink - n:m Beziehung wird nicht aktualisiert Datenbankprogrammierung 0
Maxim6394 JPA 3.2 & SQLite - LocalDateTime wird falsch geladen Datenbankprogrammierung 1
D Ich möchte dass ich nachdem man den Kommentar geschrieben hat den Kommentar in den Tabelle Bestellübersicht geschbeichert wird klappt nicht bei mir Datenbankprogrammierung 2
Watsoon Treiber wird in Intellij nicht geladen Datenbankprogrammierung 2
Kirby.exe PreparedStatement wird nicht ausgeführt Datenbankprogrammierung 5
Z Datenbank Choicebox wird nicht befüllt Datenbankprogrammierung 15
N Sqlite DB mit Java wird auf Linuxsystem nicht gefunden Datenbankprogrammierung 9
J Netbeans 11 und Eclipse JPA 2.5 Entity wird nicht gefunden Datenbankprogrammierung 4
F H2 ObjectOptimisticLockingFailureException wird nicht geworfen Datenbankprogrammierung 0
S sun.jdbc.odbc.JdbcOdbcDriver wird nicht gefunden Datenbankprogrammierung 2
S MySQL Speicher wird nicht freigegeben bei Datenbankabfragen Datenbankprogrammierung 6
D MySQL Eingabe wird nicht übernommen... Datenbankprogrammierung 11
L Select Anweisung wird falsch interpretiert Datenbankprogrammierung 3
F sun.jdbc.odbc.jdbcodbcdriver wird nicht gefuden Datenbankprogrammierung 3
E Nur der letzte Datensatz wird in Tabelle geschrieben Datenbankprogrammierung 4
L JTable-DB: Letzter wert wird nicht angezeigt. Datenbankprogrammierung 0
K Datenbank wird bei Programmstart als .jar nicht mehr befüllt Datenbankprogrammierung 12
T MySQL Datetime wird auf Sekunden gerundet, soll es aber nicht Datenbankprogrammierung 2
N SQL-Statement Auslesen des Resultset wird immer langsamer Datenbankprogrammierung 6
P JSF + H2 + TomEE + Hibernate/JPA Datenbank wird nicht angelegt Datenbankprogrammierung 3
C Programm wird nach DB-Eintrag nicht weitergeführt Datenbankprogrammierung 5
M OutOfMemoryException obwohl nur 1 Eintrag abgefragt wird Datenbankprogrammierung 7
T f:event preRenderView Trigger wird nicht ausgeführt Datenbankprogrammierung 4
P Oracle Hibernate - Oracle-VarChar-Index wird nicht genutzt Datenbankprogrammierung 3
A MySQL Datensatz wird nicht richtig gelöscht Datenbankprogrammierung 6
H Microsoft Access Treiber wird nicht gefunden Datenbankprogrammierung 9
B MySQL Hibernate (duplicate Entry) Beziehungstabelle wird nicht befüllt Datenbankprogrammierung 8
N batchupdate, es wird nur der letzte Eintrag eingetragen Datenbankprogrammierung 5
N batch-Update wird nicht durchgeführt Datenbankprogrammierung 2
M Rückgabewert aus DB wird falsch gelesen Datenbankprogrammierung 3
S Wie überprüfe ich ob die Instanz einer Connection gerade werwendet wird? Datenbankprogrammierung 4
C DB.Treiber wird nicht gefunden? Datenbankprogrammierung 5
E MySQL Treiber wird nicht geladen Datenbankprogrammierung 5
K org.gjt.mm.mysql.driver wird nicht gefunden Datenbankprogrammierung 11
T Unerwartete Datenbankausgabe bei "select now()" (es wird ein .0 angehängt) Datenbankprogrammierung 5
N Ubuntu 9.04 jdbc connector wird nicht gefunden Datenbankprogrammierung 5
K Wird auf den Eintrag referenziert? Datenbankprogrammierung 4
J SqlConnection Instanz wird immer grösser? Datenbankprogrammierung 2
I Sql Befehl wird nicht ausgeführt Datenbankprogrammierung 8
sparrow [Hibernate] Relation wird nicht gespeichert (Topic changed) Datenbankprogrammierung 11
A REVOKE wird nicht durchgeführt Datenbankprogrammierung 2
M Treiber wird nicht gefunden Datenbankprogrammierung 5
P Datenbank wird nicht geschlossen - problematisch? Datenbankprogrammierung 2
N mysql.jdbc treiber wird nicht gefunden Datenbankprogrammierung 2
D Neuer Query wird nicht erkannt Datenbankprogrammierung 10
S JOptionPane wird nicht angezeigt Datenbankprogrammierung 5
W Nur ein Datensatz wird angezeigt, obwohl mehrere existieren Datenbankprogrammierung 7
ven000m SQL Querry wird nicht abgesetzt, da vorher underlined! Datenbankprogrammierung 8
D "Distinct" wird nicht ausgeführt Datenbankprogrammierung 8
H mySql Connector/J Treiber wird nicht gefunden Datenbankprogrammierung 2
C SQLException wenn String auf VARCHAR geschrieben wird Datenbankprogrammierung 10
H JDBC-Treiber wird nicht geladen Datenbankprogrammierung 2
L SQL-Problem: Insert wird nicht ausgeführt Datenbankprogrammierung 5
N Cloudscape wird opensource :) Datenbankprogrammierung 3
X Verbindung zu DB wird zurückgewiesen Datenbankprogrammierung 8
H letzter Datensatz wird nicht gefunden? Datenbankprogrammierung 6
W MySQL-Connector funktioniert nicht über WLAN -> MacOS Datenbankprogrammierung 10
M Meine Datenbank lässt sich mit meiner Methode nicht ändern Datenbankprogrammierung 1
P Reicht finally nicht um DB connections zu schließen in (altem) Java? Datenbankprogrammierung 4
J SQLite Abfrage fehlerhaft - komme nicht weiter - please help. Datenbankprogrammierung 3
M Datenbank Zugraff nach Umwandlung in .jar-Datei nicht mehr möglich Datenbankprogrammierung 4
Auf MySql Datenbank zugreifen funktioniert nicht Datenbankprogrammierung 8
A Java DB Server lässt sich nicht starten Datenbankprogrammierung 3
B SQlite Datenbank, trotz Statements wurden nicht alle Zeilen erzeugt? Datenbankprogrammierung 35
T Datenzeilen werden nicht gelöscht Datenbankprogrammierung 6
Warum funktioniert MySQL nicht Datenbankprogrammierung 8
S Das printen der Ausgabe des Oracle-SQL-Statements in der Java-Eclipse-Konsole funktioniert nicht Datenbankprogrammierung 6
S Datenbankprogrammierung in Java unter NetBeans 12 funktioniert nicht! Datenbankprogrammierung 1
pkm PostgreSQL Kann mit mybatis einen Parameter für eine postgreSQL-Abfrage nicht übergeben. Datenbankprogrammierung 5
Davee SQLite SQLite Datenbank lässt sich nicht auf anderen PCs öffnen Datenbankprogrammierung 8
rafi072001 MicroServices EurekaClient findet anderern EurekaClient nicht Datenbankprogrammierung 1
D JPA gleiche methode funktioniert an einer Stelle, an der anderen nicht Datenbankprogrammierung 3
pkm PostgreSQL Auf eine Spalte kann aus einem Teil der SQL-Aussage nicht zugegriffen werden Datenbankprogrammierung 3
G MySQL JDBC Metadaten auslesen aus .accdb -> Primärschlüssel manchmal erkannt manchmal nicht Datenbankprogrammierung 3
C MySQL SQL Statement wir nicht ausgeführt Datenbankprogrammierung 11
pkm Tomcat Classloader findet bei JPA-Persistierung die Persistence Unit nicht. Datenbankprogrammierung 11
F Tabellen automatisch erstellen wenn sie nicht existieren Datenbankprogrammierung 6
J Java fügt Datensätze ein aber diese werden nicht richtig abgefragt Datenbankprogrammierung 3
J Firebase KeepSynced funktioniert nicht Datenbankprogrammierung 0
OnDemand MySQL Trigger löst nicht aus bei Hibernate Update Datenbankprogrammierung 12
R HSQLDB ResultSet update aktualisiert DB, aber nicht das ResultSet Datenbankprogrammierung 2
platofan23 MySQL Java Programm findet Treiber für mySQL auf Debian-Server nicht? Datenbankprogrammierung 11
B MySQL Data Tools Plattform - "Database Connections" findet den Treiber nicht Datenbankprogrammierung 1
OnDemand One to Many bekomm es nicht hin Datenbankprogrammierung 7
L SQL-Statement INSERT INTO ON DUPLICATE KEY UPDATE funktioniert nicht Datenbankprogrammierung 5
OnDemand Update auf Mysql läuft nicht durch Datenbankprogrammierung 30

Ähnliche Java Themen

Neue Themen


Oben