Hibernate 逆向工程未生成正确的域代码 STS
Posted
技术标签:
【中文标题】Hibernate 逆向工程未生成正确的域代码 STS【英文标题】:Hibernate Reverse Engineering not generating proper domain code STS 【发布时间】:2018-09-07 21:50:10 【问题描述】:我在 Spring 中启动了一个项目,并成功地在 Spring 上运行了一个示例应用程序,与 mysql 数据库中的一个表进行通信。
现在,出于学习目的,我在同一个数据库中创建了另外两个表,并希望通过 Hibernate Tools 的逆向工程生成域类。 我关注了https://www.mkyong.com/hibernate/how-to-generate-code-with-hibernate-tools/ 这个教程。我的类正在生成,但它不包含实体/域类应包含的任何注释或映射。下面是生成的代码供参考:
// default package
// Generated Mar 29, 2018 8:18:21 AM by Hibernate Tools 5.2.8.Final
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
/**
* Product generated by hbm2java
*/
public class Product implements java.io.Serializable
private Integer productId;
private String productName;
private String createdBy;
private Date createdDate;
private String modifiedBy;
private Date modifiedDate;
private Set measurmentCategories = new HashSet(0);
public Product()
public Product(String productName)
this.productName = productName;
public Product(String productName, String createdBy, Date createdDate, String modifiedBy, Date modifiedDate,
Set measurmentCategories)
this.productName = productName;
this.createdBy = createdBy;
this.createdDate = createdDate;
this.modifiedBy = modifiedBy;
this.modifiedDate = modifiedDate;
this.measurmentCategories = measurmentCategories;
public Integer getProductId()
return this.productId;
public void setProductId(Integer productId)
this.productId = productId;
public String getProductName()
return this.productName;
public void setProductName(String productName)
this.productName = productName;
public String getCreatedBy()
return this.createdBy;
public void setCreatedBy(String createdBy)
this.createdBy = createdBy;
public Date getCreatedDate()
return this.createdDate;
public void setCreatedDate(Date createdDate)
this.createdDate = createdDate;
public String getModifiedBy()
return this.modifiedBy;
public void setModifiedBy(String modifiedBy)
this.modifiedBy = modifiedBy;
public Date getModifiedDate()
return this.modifiedDate;
public void setModifiedDate(Date modifiedDate)
this.modifiedDate = modifiedDate;
public Set getMeasurmentCategories()
return this.measurmentCategories;
public void setMeasurmentCategories(Set measurmentCategories)
this.measurmentCategories = measurmentCategories;
虽然,该类应该包含一个注解@Entity,并且所有变量都应该包含一个适当的注解。但生成的代码中没有。
【问题讨论】:
【参考方案1】:在“导出器”选项卡中确保选中Generate EJB3 annotations
。
【讨论】:
Sukhpal,默认实现 java.io.Serializable 接口。 Spring 模型/域应该实现这个接口吗?因为我跟着的Spring教程,他们在手动创建领域类的时候并没有实现这个接口。 虽然规范没有要求。有关更多信息,请在此处阅读类似的答案:***.com/questions/2020904/… 我已经检查了两个复选框,但仍然没有生成注释。我也检查了每一个(一个一个),没有积极的结果。每次生成没有注解的java类。【参考方案2】:除了Generate EJB3 annotations
,确保在休眠配置的“主”选项卡中选择Annotations (jdk 1.5+)
。
【讨论】:
我已经检查了两个复选框,但仍然没有生成注释。我也检查了每一个(一个一个),没有积极的结果。每次生成没有注解的java类【参考方案3】:您需要确保选择 Hibernate 版本为 5.2。
【讨论】:
以上是关于Hibernate 逆向工程未生成正确的域代码 STS的主要内容,如果未能解决你的问题,请参考以下文章
[转]hibernate在eclipse的逆向工程生成hbm.xml和bean类