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

  • El SalvaLobo

    El SalvaLobo

    10 Temmuz 2006
  • Fullscreen

    Fullscreen

    23 Mart 2006
  • Tutorials Junction

    Tutorials Ju

    1 Ocak 2014