我将数据库表反向工程为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/