所以我遇到了这个问题,我的id
是数据库中的一个int,只是为了清楚。我正在使用转换器如下:
@JsonView(Views.Public.class)
@Id
@GeneratedValue(generator = "INC_IDTECHX", strategy = GenerationType.SEQUENCE)
@SequenceGenerator(name = "INC_IDTECHX", sequenceName = "INC_X", allocationSize = 1)
@Column(name = "IDTECHX", unique = true, nullable = false, precision = 8, scale = 0)
@Convert(converter = IntConverter.class)
private String idtechX;
我用它来解决我需要建立一个creteria的问题:
if (StringUtils.isNotBlank(criteria.getIdtechX())) {
String like = criteria.getIdtechX().replace("*", "%");
predicates.add(cb.like(root.get("idtechX"), like));
}
这就是为什么我在转换器中制作转换器的原因所以我可以在我的数据库中使用%进行搜索,但这使得无法创建新的对象,因为Hibernate给了我这个错误
ids的未知整数数据类型:java.lang.String;嵌套异常是org.hibernate.id.IdentifierGenerationException:具有根本原因的ids:java.lang.String]的未知整数数据类型org.hibernate.id.IdentifierGenerationException:ids的未知整数数据类型:java.lang.String
因此我没有看到使其按预期工作的解决方案。谢谢你的帮助