SORU
20 Kasım 2008, PERŞEMBE


Hazırda bekleme: Otomatik olarak oluşturma/db tabloları varlık sınıflarına göre güncellenmesi

Aşağıdaki varlık sınıfı (Harika) var:

import javax.persistence.Entity
import javax.persistence.Id
import javax.persistence.GeneratedValue
import javax.persistence.GenerationType

@Entity
public class ServerNode {

  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  Long id

  String firstName
  String lastName


}

ve benim persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">

    <persistence-unit name="NewPersistenceUnit">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <properties>
            <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/Icarus"/>
            <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
            <property name="hibernate.connection.username" value="root"/>
            <property name="hibernate.connection.password" value=""/>
            <property name="hibernate.archive.autodetection" value="class"/>
            <property name="hibernate.show_sql" value="true"/>
            <property name="hibernate.format_sql" value="true"/>
            <property name="hbm2ddl.auto" value="create"/>
        </properties>
        <class>net.interaxia.icarus.data.models.ServerNode</class>
    </persistence-unit>
</persistence>

senaryo:

import javax.persistence.EntityManager
import javax.persistence.EntityManagerFactory
import javax.persistence.Persistence
import net.interaxia.icarus.data.models.ServerNode

def factory = Persistence.createEntityManagerFactory("NewPersistenceUnit")
def manager = factory.createEntityManager()

manager.getTransaction().begin()

manager.persist new ServerNode(firstName: "Test", lastName: "Server")

manager.getTransaction().commit()

veritabanı 'İkarus' var, ama şu anda herhangi bir tablo vardır. Otomatik olarak oluşturmak ve tabloları varlık sınıfları temel/güncelleme için Hazırda istiyorum. Bunu nasıl gerçekleştirmek istiyorsunuz?

CEVAP
20 Kasım 2008, PERŞEMBE


Eğer ön kapalı hibernate bırakarak bir fark yaratır mı bilmiyorum.

reference hibernate.hbm2ddl.auto olması gerektiğini öne sürüyor

create değeri sessionFactory oluşturma tabloları oluşturmak ve onları olduğu gibi bırakın.

create-drop değeri tabloları oluşturmak ve sessionFactory kapattığınızda onları bırakın.

Belki de javax.persistence.Table ek açıklama açıkça ayarlamanız gerekir?

Bu yardımcı olur umarım.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Abe Olandres

    Abe Olandres

    16 EYLÜL 2006
  • Gan Eden Productions

    Gan Eden Pro

    11 HAZİRAN 2011
  • SerienTrailerMP

    SerienTraile

    7 HAZİRAN 2012