EclipseLink

Hibernateつぶし - ひがやすを blog
Webアプリケーションは解らないが、SwingアプリケーションではNetBeansToplink Essentialsを既にサポートしている。
ウィザードでプロジェクト>Java>Javaデスクトップアプリケーションでデータベースアプリケーションを選択すると、自動的にToplink Essentialsのライブラリィをプロジェクトに追加して、

対象となったデータベーステーブルのメタデータを元に、アノテーション付きのJavaBeansクラスを生成して

@Entity
@Table(name = "PRODUCT")
@NamedQueries({@NamedQuery(name = "Product.findByProductId", query = "SELECT p FROM Product p WHERE p.productId = :productId...略)
public class Product implements Serializable {
    @Transient
    private PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);
    private static final long serialVersionUID = 1L;
    @Id
    @Column(name = "PRODUCT_ID", nullable = false)
    private Integer productId;
    @Column(name = "MANUFACTURER_ID", nullable = false)
    private int manufacturerId;
    @Column(name = "PRODUCT_CODE", nullable = false)
    private String productCode;
    @Column(name = "PURCHASE_COST")
    private BigDecimal purchaseCost;
    @Column(name = "QUANTITY_ON_HAND")
    private Integer quantityOnHand;
    @Column(name = "MARKUP")
    private BigDecimal markup;
    @Column(name = "AVAILABLE")
    private String available;
    @Column(name = "DESCRIPTION")
    private String description;

エンティティマネジャを構成し、その後はBeansBindingを利用してGUIにデータバインドするコードまで出力する。まさにSwingアプリケーション用のscaffoldと言える程の出来。
Hibernate殺し、というのは大げさかもしれないけれど、確かにJPAはこっちを使いたくなるかも。私自身、EJBが嫌いでずっと独自のDAOを使っていたけど、これ位扱いが簡単だと乗り換えたくなる。