当JPA试图从表中生成实体时,如何告诉JPA如何在数据库中使用不同的列类型进行操作?
例如,当我在MySQL中有如下列时:
`deleted` tinyint(1) NOT NULL DEFAULT 0,
我希望JPA生成的实体中有boolean
而不是byte
,但是JPA将生成的内容如下所示:
@Column(nullable=false)
private byte deleted;
然而,我想要这样的东西:
@Column(nullable=false)
@Type(type = "org.hibernate.type.NumericBooleanType")
private boolean deleted;
我认为一定有一种方法可以告诉JPA如何在Java实体中转换表中的列类型。
我不喜欢手工修改实体!
发布于 2020-06-18 13:45:57
在向导的最后一页中,我们可以为每一列定义预期的类型。有趣的是,eclipse以某种方式为每一列存储选定的类型,将来当您尝试重新生成不需要执行此步骤的实体时!
发布于 2020-06-09 07:51:49
如果您想知道如何配置Eclipse向导将TINYINT
映射到boolean
,那么答案可能是您不能。
不过,使用Hibernate工具看起来更有希望。有一个hibernate.reveng.xml配置文件可以用来控制类型映射。
作为附带说明:
我不喜欢手工修改实体!
请注意,反向工程工具通常缺乏生成完全合理的业务模型结构所需的业务知识。您可能需要做一些调整(例如,您可能不会得到任何@ManyToMany
关联,即使它们是更自然的解决方案域)。
https://stackoverflow.com/questions/62265378
复制相似问题