从数据库生成JPA实体的定制代码生成

5
我在这里询问一种简单的方法,可以在由Eclipse从数据库生成的JPA实体中添加一些自定义代码。基本上我想要达到的目的是添加公共字符串属性,包含实体属性的名称,并在需要提供“属性名称”作为字符串时使用它们,并确保不会出现运行时访问错误。类似于这样:
@Entity
@Table(name="clients")
@NamedQuery(name="ClientModel.findAll", query="SELECT c FROM ClientModel c")
public class ClientModel implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @Column(name="id_client")
    private long idClient;

    public String name;

    public ClienteModel() {
    }

    public long getIdClient() {
        return this.idClient;
    }

    public void setIdClient(long idClient) {
        this.idClient = idClient;
    }

    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }

    //CUSTOM CODE
    public static final String idClientProperty = "idClient";
    public static final String nameProperty = "name";
}

所以我可以使用类似属性名称的方式
ClientModel.nameProperty

并且在编译时确保他的存在,并且在进一步生成实体后重构名称的情况下也是安全的。

我知道Telosys Tools等工具的存在,但我希望有更简单/更快的东西(例如在使用JAXB生成WSDL_to_entity时提供自定义类作为插件)

谢谢。

1个回答

5
最终我使用了Telosys工具,即使我不想在我的项目中添加另一个工具, 设置起来也很容易,只需要阅读此处 https://sites.google.com/site/telosystools/getting-started/21-configure-a-project 在我的特定情况下,我在生成getter方法时向模板“JPA_bean_with_links”添加了以下代码。
#if ( $field.getter )    public static String ${field.getter}Property() {
        return "$field.name";
    }
#end

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接