hibernate自动发现和生成POJO的数据库映射

时间:2008-11-21 13:59:29

标签: java hibernate automation code-generation pojo

是否有任何工具可以通过从数据库中收集信息来自动生成hibernate POJO?

在我正在使用的项目中第三次或第四次更改架构之后,我创建了一个perl脚本来执行此操作,并且想知道是否有任何已建立的工具可以为我执行此操作,因为我的脚本是粗略的,需要对生成的.java.hbm.xml文件进行一些调整。

例如(基于我的脚本的作用),有一个表statement

Object_Name  Type_Name Base_Type Nulls Identity
------------ --------- --------- ----- --------
id           id_int    int       no    yes
id_user      id_tiny   tinyint   no    no
value        float     float     no    no

我希望程序能够自动生成以下java:

package com.some.company.schema;

import java.io.Serializable;

public class Statement implements Serializable {
    private static final long serialVersionUID = 1227171190L;
    private Integer id;
    private User user;
    private Float value;

    public void setId(Integer id){
        this.id = id;
    }

    public Integer getId(){
        return this.id;
    }

    public void setUser(User user){
        this.user = user;
    }

    public User getUser(){
        return this.user;
    }

    public void setValue(Float value){
        this.value = value;
    }

    public Float getValue(){
        return this.value;
    }
}

和相应的Hibernate映射文件:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
    <class name="com.some.company.schema.Statement" table="statement">
        <id name="id" column="id">
            <generator class="native" />
        </id>
        <many-to-one name="user" class="com.some.company.schema.User" column="id_user" not-null="true" />
        <property name="value" column="value" not-null="true" />
    </class>
</hibernate-mapping>

3 个答案:

答案 0 :(得分:3)

答案 1 :(得分:1)

Netbeans在生成可与hibernate-annotations / entitmanager一起使用的注释实体方面做得很好。我还在Eclipse中使用了Hibernate Tools / JBoss IDE来生成它们,并且它运行良好。

答案 2 :(得分:0)

请参阅hibernate工具

http://www.hibernate.org/hib_docs/tools/reference/en/html_single/

从架构到Pojos不确定 但绝对是从hbm.xml文件到pojos。

Maven插件也可以使自动构建成为梦想 保罗