6

我有大量使用 JPA 属性访问而不是字段访问的 Java 类,并且将它们转换为使用字段访问(将注释从 getter 移动到字段)非常耗时。从数据库表中重新生成它们也不是一种选择。

所以我正在考虑使用 IDEA 的结构搜索和替换来尝试自动移动注释。我想改变一个看起来像这样的类:

@Entity
@Table
public class Make {

    private Long id;
    private String makeCode;
    ...other properties, with more involved JPA annotations

    @Id
    @GeneratedValue
    public Long getId() {
        return id;
    }

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

    @Column(length = 10, unique = true)
    public String getMakeCode() {
        return makeCode;
    }

    public void setMakeCode(String makeCode) {
        this.makeCode = makeCode;
    }
    ...
}

一个看起来像这样的:

@Entity
@Table
public class Make {

    @Id
    @GeneratedValue
    private Long id;

    @Column(length = 10, unique = true)
    private String makeCode;

    public Long getId() {
        return id;
    }

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

    public String getMakeCode() {
        return makeCode;
    }

    public void setMakeCode(String makeCode) {
        this.makeCode = makeCode;
    }
    ...
}

从那里我将能够进行额外的重构,但我发现手动移动注释非常耗时。

我玩过结构搜索和替换,但它非常密集且缺乏文档,所以我很感激有关如何配置不同模板的任何提示。

我想它会是这样的:

找到所有以“get”开头的方法,这些方法至少带有一个javax.persistence.*注释,以及一个匹配的私有字段,并替换为相同的字段和方法,但将注释从一个方法移动到另一个字段。

我只是在努力将其放入结构搜索表达式中。

4

0 回答 0