Java 自动生成的主键int到字符串Hibernate错误上的JPA@Converter

Java 自动生成的主键int到字符串Hibernate错误上的JPA@Converter,java,hibernate,jpa,Java,Hibernate,Jpa,所以我有这个问题,我的id是数据库中的一个int,只是为了清楚起见。我使用的转换器如下所示: @JsonView(Views.Public.class) @Id @GeneratedValue(generator = "INC_IDTECHX", strategy = GenerationType.SEQUENCE) @SequenceGenerator(name = "INC_IDTECHX", sequenceName = "INC_X", allocationSize = 1) @Colu

所以我有这个问题,我的
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;
我用这个来解决一个问题,我需要建立一个克里特利亚:

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


因此,我看不到一个解决方案,使这项工作的预期。感谢您的帮助

在我看来,您应该修改标准,并使用简单生成的int值作为ID@XtremeBaumer我正在使用criteriaBuilding和类似的工具只对字符串起作用,因为有些daba基支持int上的%on(如Oracle),有些则不支持,因此无法生成。如果按ID搜索,则应该知道确切的值,否则你可以搜索一个ID范围这是为了添加一个功能,我有一个网站,如果用户想看到所有的项目,其中ID=1245%和这种选择它是最干净的解决方案,你可以做