SORU
29 NİSAN 2009, ÇARŞAMBA


Hazırda bekleme: " 'ıd' değil't varsayılan değere sahip bir Alan"

Hazırda basit bir sorun, ama (Hazırda bekleme forumları ulaşılamaz olmak kesinlikle yardımcı olmuyor) çözemez bence ne ile karşı karşıyayım.

Devam etmek istiyorum basit bir Dersim var, ama almaya devam ediyorum:

SEVERE: Field 'id' doesn't have a default value
Exception in thread "main" org.hibernate.exception.GenericJDBCException: could not insert: [hibtest.model.Mensagem]
    at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
    [ a bunch more ]
Caused by: java.sql.SQLException: Field 'id' doesn't have a default value
    [ a bunch more ]

Eğer ilgili kod sınıf devam etti:

package hibtest.model;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;

@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public class Mensagem  {
    protected Long id;

    protected Mensagem() { }

    @Id
    @GeneratedValue
    public Long getId() {
        return id;
}

    public Mensagem setId(Long id) {
        this.id = id;
        return this;
    }
}

Ve gerçek çalışan kod sadece düz

SessionFactory factory = new AnnotationConfiguration()
    .configure()
    .buildSessionFactory();

{
    Session session = factory.openSession();
    Transaction tx = session.beginTransaction();

    Mensagem msg = new Mensagem("YARR!");

    session.save(msg);

    tx.commit();
    session.close();
}

Bazı "strateji" GeneratedValue annotation ama işe yaramıyor. denedim id başlatma da yardımcı olmuyor! (örneğin Long id = 20L).

Herkes biraz ışık tutabilir?

EDİT 2:onaylandı:@GeneratedValue(strategy = GenerationType.XXX) kameraya çözmez

ÇÖZÜLDÜ:veritabanı yeniden sorunu çözüldü

CEVAP
11 Mayıs 2009, PAZARTESİ


Bazen değişiklikler ORM model veya yapılan doğru bile SchemaUpdate idamına sonra veritabanı yansıtması.

Eğer hata aslında mantıklı bir açıklaması olmaması gibi görünüyor, veritabanı (ya da en azından yeni bir tane oluşturuluyor) yaratmayı ve SchemaExport ile iskele deneyin.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Alfredo Garcia

    Alfredo Garc

    25 Mayıs 2007
  • inovationgmbh

    inovationgmb

    28 EYLÜL 2010
  • Visual Life

    Visual Life

    3 Temmuz 2006