我有大量使用 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.*
注释,以及一个匹配的私有字段,并替换为相同的字段和方法,但将注释从一个方法移动到另一个字段。
我只是在努力将其放入结构搜索表达式中。