表中的 JPA 实体将 int 主键转换为 String

JPA Entities from Tables turns int primary key to String

我使用 Eclipse --> JPA 表中的实体从 mysql 数据库中生成实体。所有表的主键——id 都是 int(11) AI PK。所以我得到的不是 int 或 long,而是所有键的字符串。我做错了什么?

谢谢!

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="LOCATION_ID")
private String locationId; 

Eclipse 未正确解析主键的数据类型 (int(11))。因此,Eclipse 无法解析适当的数据类型到 Java 类型的映射。由于缺少该映射,Eclipse 将主键属性的数据类型默认为 String。您可以从数据类型(即 (11))中删除显示宽度属性,Eclipse 应该能够更恰当地映射数据类型。

刚发现生成实体的时候,点击id,eclipselink会让你select映射类型。选择 int 而不是 String 就可以了。