JPA Problem mit Cascading

saw

Mitglied
Hi, ich habe kein Problem mit Cascading bzw irgendwas mache ich falsch. Mein Verstaendnis von Cascading ist, dass man eine Entity in einer Collection einer anderen Entity haengt und dann sein persist auf die letzter macht. Erstere sollte automatisch auch gespeichert werden - aber irgendwas muss ich wohl falsch machen:

Code:
@Entity
@DiscriminatorValue("typ1")
public class AccountType1 extends Account {
	
	@ManyToMany(cascade=CascadeType.PERSIST)
	@ElementCollection(fetch=FetchType.LAZY)
	private Set<Tag> tags;
	
        ...

Code:
@Entity
public class Tag extends PersistentObject {
	
	private String value;


Tag erzeugen und abspeichern:
Code:
EntityManager em = Persistence.createEntityManagerFactory("trainingbroker").createEntityManager();

Tag tag = new Tag():
tag.setValue("some value");

AccountType1 account = DAO.getAccountById(id);
account.getTags().add(tag);

em.getTransaction().begin();
em.persist(account);
em.getTransaction().commit();

Als Ergebnis des ganzen bekomme ich

Code:
May 05, 2014 10:22:11 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
WARN: SQL Error: 1452, SQLState: 23000
May 05, 2014 10:22:11 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: Cannot add or update a child row: a foreign key constraint fails
...
Caused by: javax.persistence.PersistenceException: org.hibernate.exception.ConstraintViolationException: could not execute statement
...
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails (`broker`.`AccountType1_Tag`, CONSTRAINT `FK_4mgh05pk0sxra0m6agwqmcy23` FOREIGN KEY (`tags_id`) REFERENCES `Tag` (`id`))
...
javax.persistence.RollbackException: Error while committing the transaction
	at org.hibernate.jpa.internal.TransactionImpl.commit(TransactionImpl.java:94)

Ich kann es zwar aus der Fehlermeldung nicht richtig rauslesen, aber ich vermute, dass es daran liegt, dass der Tag keine id hat und der dann in der Tabelle AccountType1_Tag einen leeren String versucht zu schreiben.

Wie macht man das richtig? Der Punkt ist, dass ich keine eigene Methode anbieten will um einen Tag anzulegen, sondern dieser immer im Zusammenhang mit einer anderen Entity erzeugt werden muss. Also erst ein persist auf den Tag und dann auf den AccountType1 ist keine Option.

Gruesse
saw
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Problem beim initialisieren des Caches Data Tier 0
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
G JPA 2.0 Query Problem Data Tier 3
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