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

时间:2014-10-30 10:46:07

标签: java jpa entity

我在这里要求一种简单的方法在Eclipse从数据库生成的JPA实体中添加一些自定义代码。

基本上我想要实现的是添加包含实体属性名称的公共String属性,并在需要提供"属性名称"时使用它们。作为String并确保不会出现运行时访问错误。

像这样的东西

@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工具的存在& co。,但我希望可以有更简单/更快的东西(比如使用JAXB在WSDL_to_entity生成中作为插件提供的自定义类)

谢谢。

1 个答案:

答案 0 :(得分:4)

最后我使用了Telosys工具,即使我不想在我的项目中添加其他工具, 有点容易设置,只需阅读这里 https://sites.google.com/site/telosystools/getting-started/21-configure-a-project

在我的特定情况下,我已经添加到模板" JPA_bean_with_links"在getter创建过程中使用此代码

#if ( $field.getter )    public static String ${field.getter}Property() {
        return "$field.name";
    }
#end