我正在将数据库表反向工程为 JPA 实体。我使用 MyEclipse IDE ,选择的 JPA persistance实现是 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;
其实我需要' textdescription'专栏作为' TXTDESC' 即
@Column(name="TXTDESC")
private String textdescription;
问题:
我喜欢从有经验的人那里了解,如果有任何战略/逻辑 -
(a)我可以在逆向工程过程中更改此列名吗? [我看到了SessionCustomizer
的用法,但这是针对所有表的通用逻辑或命名约定列。就我而言,列名实际上是查找的,并且每个表都有所不同。]
(或)
(b)我可以先进行逆向工程,然后再进行任何类型的额外代码生成机制,我可以为每个反向设计的表列指定自定义名称吗?
注意:我知道我们可以逐行编程地为每个列名称执行此操作,但我试图看看是否可以在MyEclipse JPA逆向工程支持或任何其他逻辑/策略的帮助下利用它,因为那里将是100 + + 100 +表的模式。
答案 0 :(得分:1)
您不清楚自己想做什么,因为您无法通过此流程更改表格中的列名称。您必须更改数据库中的表才能执行此操作,然后使用此过程。
但是,您可以通过更改生成的Java类中的属性名称,而不是在步骤3中单击“完成”,单击“下一步”,然后再单击“下一步”。现在展开Productline表并选择任何列以查看可以对生成的内容进行的修改。如果单击表本身,则可以更改为表生成的类名。
答案 1 :(得分:0)
逆向工程模式以获取JPA实体是一个在开发期间执行一次的过程,并且这是一个不需要100%自动化的过程,除非您期望快速的模式更改,您应该遵循。只需要做一次并手动跟踪它们。