ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
5694
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
  1. #1
    Merschi ist offline 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.
     

  2. #2
    Avatar von Oliver Gierke
    Oliver Gierke ist offline Mitglied Rubin
    Registriert seit
    Dec 2003
    Ort
    Mannheim
    Beiträge
    1.456
    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ß
    Ollie
     
    In theory, there is no difference between theory and practice. In practice, there is!

    www.olivergierke.de

  3. #3
    Merschi ist offline 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

  1. JavaDB Derby Syntax "SHOW"
    Von MaNoFoK im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 1
    Letzter Beitrag: 24.07.09, 11:32
  2. Sql-Tabellen in CCombobox lesen ? "SHOW TABLES"
    Von mats_MF im Forum VisualStudio & MFC
    Antworten: 2
    Letzter Beitrag: 22.05.08, 19:18
  3. getURL("http://abc.de" "_blank"); - funktioniert nicht mehr
    Von ali-gator im Forum Flash Plattform
    Antworten: 5
    Letzter Beitrag: 04.05.06, 10:31
  4. "lock tables" funktioniert irgendwie nicht
    Von Loctus im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 10.06.04, 15:54
  5. Antworten: 8
    Letzter Beitrag: 14.08.03, 01:47