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

  • Roger Huffman

    Roger Huffma

    4 ŞUBAT 2007
  • RomanAtwood

    RomanAtwood

    18 Kasım 2009
  • UCBerkeley

    UCBerkeley

    3 Mayıs 2006