【问题标题】:Custom code generation for JPA entities from database从数据库为 JPA 实体生成自定义代码
【发布时间】:2014-12-26 08:57:23
【问题描述】:

我在这里要求一种简单的方法来在 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 & co. 的存在,但我希望有一些更简单/更快的东西(比如在使用 JAXB 生成 WSDL_to_entity 时作为插件提供的自定义类)

谢谢。

【问题讨论】:

    标签: java jpa entity


    【解决方案1】:

    最后我使用了 Telosys Tools,即使我不想在我的项目中添加另一个工具, 设置起来很容易,只需在这里阅读 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-08
      • 2015-01-01
      • 2016-01-02
      • 2011-08-15
      • 1970-01-01
      • 2020-07-14
      • 1970-01-01
      相关资源
      最近更新 更多