Mai 31st, 2006

EJB3, EntityBeans und Hibernate Annotations

Posted by frank in Java, J2EE, Hibernate

Mit Hilfe von EJB3 können endlich Entity-Beans mit Hilfe von Annotations beschrieben werden. Nach der neusten und letzten Definition des Standards wird jetzt jedoch anhand der Stelle der Annotations (ob am Feld oder am Getter) entschieden womit der Persistenzmanager arbeitet. Dieses Verfahren darf jedoch nicht gemischt werden. Pro Entity muss man sich daher auf Field oder auf Getter festlegen. Anderenfalls kann es zu verwunderlichen Problemen kommen, die sich dann wie folgt äußern:

Caused by: java.sql.SQLException: Invalid column name 'createDate'.

Problem hierbei ist folgender Code:

@Entity
@Table(name = "customers")
public class Customer implements Serializable {

    private static final long serialVersionUID = 2005121501L;

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    @Column(name = “customer_id”)
    private int id;

    @Column(name = “customer_name”, nullable = false)
    private String name;

    private Date createDate;

    public int getId() {
        return id;
    }

    private void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Column(name = “create_date”, nullable = false)
    public Date getCreateDate() {
        return createDate;
    }

    public void setCreateDate(Date createdate) {
        this.createDate = createdate;
    }
}

Hier wird die Annotation über getCreateDate ignoriert, da für die Klasse eine Fieldinvocation gewählt wurde. Ausschlaggebend dafür ist bei der Hibernateimplementierung wo der @ID-Tag steht. Die Folge ist daher, dass das Feld

    private Date createDate;

implizit gemappt wird auf das Datenbankfeld “createDate”, welches nicht existiert.
EntityBeans sollten also mit größtmöglicher Sorgfalt überprüft werden.

Mai 31st, 2006

Clustered Singletons und Farm-Deployment

Posted by frank in Java, J2EE
Mai 30th, 2006

ActivationConfig bei MessageDrivenBeans

Posted by frank in Java, J2EE
Mai 30th, 2006

JBoss 4.0.4 und Interceptors

Posted by frank in Java, J2EE
Mai 15th, 2006

JBoss 4.0.4 GA veröffentlicht

Posted by frank in Java, J2EE
Mai 11th, 2006

Caching von EJB3 EntityBeans

Posted by frank in Java, J2EE
Mai 10th, 2006

MessageDrivenBeans auf EJB3 Manier

Posted by frank in Java, J2EE
Mai 9th, 2006

Shell Kniffe

Posted by Holger in Linux, Bash
Mai 5th, 2006

HSDPA - Schnelleres UMTS

Posted by warper in Wireless
Mai 5th, 2006

EU Landrush die Zweite

Posted by warper in Webhosting
Nächste Seite »