我将数据库表反向工程为JPA实体。我使用MyEclipse IDE,并且选择的JPA持久性实现是EclipseLink2.5.0 Kepler。

连接到嵌入式DerbyDB之后,我可以对工程表Productline进行反向工程,以生成相应的JPA实体Productline.java和相关的jpa文件。
我遵循了本教程-http://docs.myeclipseide.com/index.jsp?topic=%2Fcom.genuitec.myeclipse.persistence.doc%2Fhtml%2Fquickstarts%2Fjpa%2Findex.html

Productline表具有以下列:

productline; textdescription; htmldescription


生成的Productline.java具有以下代码段,

@Entity
@Table(name = "PRODUCTLINE", schema = "MYSCHEMA")
public class Productline implements java.io.Serializable {
    // Fields
    private String productline;
    private String textdescription;
    private String htmldescription;


实际上,我需要像“ TXTDESC”那样的“ textdescription”列


@Column(name="TXTDESC")
private String textdescription;


题 :

我想从经验丰富的家伙那里得知,是否有任何策略/逻辑-

(a)我可以在逆向工程过程中更改此列名称吗? [我看到了SessionCustomizer的用法,但这是用于所有表和列的通用逻辑或命名约定。在我的情况下,实际上会查询列名,并且每个表的列名都不同。]
(要么)

(b)我可以先进行逆向工程,然后再进行任何形式的额外代码生成机制,在其中可以为每个表列进行逆向工程指定自定义名称?

注意:我知道我们可以为每个列名逐行编程地进行此操作,但是我试图查看是否可以借助MyEclipse JPA逆向工程支持或任何其他逻辑/策略来利用它,因为将会有100个+ 100张表的方案。

最佳答案

目前尚不清楚您要做什么,因为您无法通过此过程更改表中的列名。您必须更改数据库中的表才能执行此操作,然后使用此过程。

但是,您可以通过以下方法来更改生成的Java类中的属性名称,而不是在步骤3中单击“完成”,而不是单击“下一步”,然后再次单击“下一步”。现在,展开“产品系列”表并选择任何列,以查看您可以对生成的内容进行的修改。如果单击表本身,则可以更改为表生成的类名。

关于java - MyEclipse JPA使用自定义列名称进行反向工程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24133803/

10-09 13:27