0

我正在尝试包括以下内容



private org.springframework.web.multipart.commons.CommonsMultipartFile photo;


    @Transient
    public CommonsMultipartFile getPhoto() {
        return photo;
    }

    public void setPhoto(CommonsMultipartFile photo) {
        this.photo = photo;
    }

在我从数据库表生成的 pojo 类中。

我研究发现有一种方法可以在元标记中提及额外的类代码,如下所示

http://www.scribd.com/doc/23123635/30/Guiding-the-reverse-engineering-process

但这不允许添加属性变量照片。

请建议我如何在 reveng.xml 中执行此操作,以便在每次运行 hbm2java 时都包含此代码。

提前致谢!

4

2 回答 2

2

您可以使用 reveng 模板来实现这样的自定义代码。如果打开hibernate-tools.jar,您会在文件夹中找到 .ftl 文件pojo。您需要覆盖它们以放置自定义代码。

脚步:

  1. 如果您使用的是 maven,请将其放在componentPropertieshbm2java 目标下:

    <templatepath>src/main/resources/reveng.templates/</templatepath>
    <filepattern>*.java</filepattern>
    
  2. revenge.templates/pojo在资源下创建文件夹。确保文件夹名称始终为pojo,否则不会检测到覆盖。

  3. 创建文件并从jar 中存在pojo.ftl的文件中复制内容。pojo.ftl在此文件中添加所有导入语句。

  4. 同样,按照其他文件找出您想要放置自定义代码的确切位置。

于 2011-06-13T08:57:34.743 回答
0

据我所知,没有办法在 reveng.xml 或自定义 ReverseEngineeringStrategy 中指定它。

我解决这个问题的方法是使用自定义类层扩展我生成的所有基本 POJO 类,并在那里添加瞬态属性和特殊行为。不完全是您所要求的,但它运行良好并且允许灵活性而不牺牲代码生成的好处。

于 2011-06-04T00:10:32.467 回答