ERLEDIGT
JA
JA
ANTWORTEN
2
2
ZUGRIFFE
4736
4736
EMPFEHLEN
-
08.04.08 10:51 #1
Rookie
- Registriert seit
- Feb 2007
- Beiträge
- 8
Hallo,
beim deployen werden/wird die Tabelle in der Datenbank nicht automatisch gedropped und created, obwohl ich es als property angegeben habe.
Meine Persitence.xml sieht folgender massen aus:
Code :1 2 3 4 5 6 7 8 9 10
<?xml version="1.0" encoding="UTF-8"?> <persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"> <persistence-unit name="KeyGenPU" transaction-type="JTA"> <provider>oracle.toplink.essentials.PersistenceProvider</provider> <jta-data-source>jdbc/sample</jta-data-source> <properties> <property name="toplink.ddl-generation" value="drop-and-create-tables"/> </properties> </persistence-unit> </persistence>
Meine Entity Klasse so:
Code :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 31 32 33 34 35
@Entity @Table(name = "NEWENTITY") @NamedQueries({@NamedQuery(name = "Newentity.findById", query = "SELECT n FROM Newentity n WHERE n.id = :id"), @NamedQuery(name = "Newentity.findByFirstname", query = "SELECT n FROM Newentity n WHERE n.firstname = :firstname")}) public class Newentity implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy=GenerationType.IDENTITY) @Column(name = "ID", nullable = false) private Long id; @Column(name = "FIRSTNAME") private String firstname; public Newentity() { } public Newentity(Long id) { this.id = id; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getFirstname() { return firstname; } public void setFirstname(String firstname) { this.firstname = firstname; } }
Ich verwende:
- Netbeans 6
- Derby
- Toplink
Wäre nett, wenn mir jemand dieses Verhalten erklären könnte.
-
08.04.08 11:45 #2
1. Tipp: vergiss Toplink. Das ist zwar die Referenzimplementierung, allerdings tut es an vielen Stellen nicht das, was es soll (unerwartetes Kaskadieren, untertützt nicht alle Vererbungstpyen, benötigt einen Weaver um die Entities zu erweitern usw.). Hibernate ist in jeglicher Hinsicht die bessere Wahl (ausser vielleicht bei der Jar größe
).
Zu deinem Problem: die property in der Konfiguration sorgt erstmal nur dafür, dass das SQl erzeugt wird (deswegen auch ddl-creation). Um das zeug auf die Datenbank zu schießen bedarf es einer weiteren Property "toplink.ddl-generation.output-mode" die auf "both" gesetz sein muss (http://www.oracle.com/technology/pro...va2DBSchemaGen).
Gruß
OllieIn theory, there is no difference between theory and practice. In practice, there is!
www.olivergierke.de
-
08.04.08 11:59 #3
Rookie
- Registriert seit
- Feb 2007
- Beiträge
- 8
Vielen Dank für die schnelle Antwort. Da ich sowieso noch am Anfang stehe werde ich mir dann wohl Hibernate anschauen, da ich in der Tat auch schon an anderen Stellen bei Toplink auf rätselhaftes Verhalten gestossen bin und nur am recherchieren bin.
Ähnliche Themen
-
JavaDB Derby Syntax "SHOW"
Von MaNoFoK im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 1Letzter Beitrag: 24.07.09, 11:32 -
Sql-Tabellen in CCombobox lesen ? "SHOW TABLES"
Von mats_MF im Forum VisualStudio & MFCAntworten: 2Letzter Beitrag: 22.05.08, 19:18 -
getURL("http://abc.de" "_blank"); - funktioniert nicht mehr
Von ali-gator im Forum Flash PlattformAntworten: 5Letzter Beitrag: 04.05.06, 10:31 -
"lock tables" funktioniert irgendwie nicht
Von Loctus im Forum Relationale DatenbanksystemeAntworten: 0Letzter Beitrag: 10.06.04, 15:54 -
Funktioniert <form action="index.php?site=admin" method="post"> genrell ni
Von offset im Forum PHPAntworten: 8Letzter Beitrag: 14.08.03, 01:47




Zitieren
Login