EclipseLink
Hibernateつぶし - ひがやすを blog
Webアプリケーションは解らないが、SwingアプリケーションではNetBeansはToplink 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を使っていたけど、これ位扱いが簡単だと乗り換えたくなる。