【问题标题】:generating class from hibernate mapping file从休眠映射文件生成类
【发布时间】:2010-06-08 12:31:54
【问题描述】:

我有一个映射文件,即。 student.hbm.xml .. 我需要从中生成 Student.java。文件如下:-

<?xml version="1.0" encoding="UTF-8"?>
<hibernate-mapping>
    <class name="org.hibernate.entity.ClassRoom" table="class_room">
        <id name="roomId" column="room_id" type="int"/>
        <property name="roomClass" column="room_class" type="string"/>
        <property name="floor" column="floor" type="int"/>
        <property name="roomMaster" column="room_mast" type="string"/>
    </class>
</hibernate-mapping>

有什么方法可以从上面的文件中创建类文件吗?请帮助...

【问题讨论】:

标签: java hibernate class


【解决方案1】:

你需要Hibernate Tools(在eclipse中安装)。

开发自定义 maven 插件...(下面提供示例代码)

/**
 * Generate POJO from *.hbm.xml 
 * Example Usage: mvn prefix:hbm2pojo OR 
 *                mvn prefix:hbm2pojo -Dexec.args="com.comp.Product,com.comp.Item"
 *
 * @goal hbm2pojo
 */
public class GenerateHibernatePojoMojo extends AbstractMojo
{
    /** Directory for hibernate mapping files
     * @parameter expression="${basedir}/src/main/resources"
     * @required
     */
    private File hbmDirectory;

    /** Output directory for POJOs
     * @parameter expression="${project.build.sourceDirectory}"
     * @required
     */
    private File outputDirectory;

    /** set to true if collections need to use generics. Default is false.
     * @parameter expression="${jdk5}" default-value="false"
     * @optional
     */
    private String jdk5;

    public void execute() throws MojoExecutionException, MojoFailureException
    {
        POJOExporter exporter = new POJOExporter();
        exporter.setOutputDirectory( outputDirectory );

        Configuration config = new Configuration();
        config.setProperty("jdk5", jdk5);

        String args = System.getProperty("exec.args");
        if (args != null && !"".equals(args))
        {
            String[] entityNames = args.split(",");
            for(String entityName : entityNames)
            {
                File hbmFile = new File( hbmDirectory + "/" + entityName.replace( '.', '/' ) + ".hbm.xml" );
                config.addFile( hbmFile );
            }
        }
        else
        {
            config.addDirectory( hbmDirectory );
        }
        exporter.setConfiguration( config );
        exporter.start();
        // TODO this guy also generates unwanted POJOs like POJO of component
        // TODO Add support for Java 5 Generic
    }

}
  • SE

【讨论】:

  • 你能告诉我从哪里得到 maven jar。
  • 您能详细说明您的问题吗?顺便说一句,您可以从repo1.maven.org/maven2 获得所有大多数罐子。 - SE
【解决方案2】:

使用 hbm2java ant 目标尝试 hibernate tools。示例12

【讨论】:

    【解决方案3】:

    Hibernate toolsdocumentation 一起使用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-09
      • 1970-01-01
      • 1970-01-01
      • 2011-01-25
      • 1970-01-01
      相关资源
      最近更新 更多