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

  • iBand IguJoo

    iBand IguJoo

    25 AĞUSTOS 2006
  • Jonah Penna

    Jonah Penna

    11 EYLÜL 2005
  • TheDailyTechDose

    TheDailyTech

    15 EKİM 2012