Java 如何通过使用Spring和Hibernate执行动态查询来填充非实体POJO类

Java 如何通过使用Spring和Hibernate执行动态查询来填充非实体POJO类,java,spring,hibernate,jpa,ibatis,Java,Spring,Hibernate,Jpa,Ibatis,我的任务是将项目的某些部分从iBatis迁移到Hibernate。我有以下表格: CREATE TABLE manufacturer ( country VARCHAR(3) NOT NULL, code VARCHAR(2) NOT NULL, name VARCHAR(100) NOT NULL, PRIMARY KEY (country, code) ); CREATE TABLE model ( country VARCHAR

我的任务是将项目的某些部分从iBatis迁移到Hibernate。我有以下表格:

CREATE TABLE manufacturer (
  country VARCHAR(3)   NOT NULL,
  code    VARCHAR(2)   NOT NULL,
  name    VARCHAR(100) NOT NULL,
  PRIMARY KEY (country, code)
);

CREATE TABLE model (
  country           VARCHAR(3)   NOT NULL,
  manufacturer_code VARCHAR(2)   NOT NULL,
  code              VARCHAR(2)   NOT NULL,
  name              VARCHAR(100) NOT NULL,
  PRIMARY KEY (country, manufacturer_code, code),
  CONSTRAINT fk__model_manufacturer FOREIGN KEY (country, manufacturer_code) REFERENCES manufacturer (country, code)
  ON DELETE CASCADE
  ON UPDATE CASCADE
);
我为制造商和模型创建了实体类和存储库。到目前为止,它是有效的。但现在我需要实现这个动态查询iBatis mapper@Select:

SELECT country, code, name,
<if test="criteria.text != null">,ARRAY_TO_JSON(regexp_matches(name, #{criteria.text},'i')) AS match</if>
FROM manufacturer
WHERE UPPER(country) = UPPER(#{countryCode})
<if test="criteria.text != null"> AND name ~* #{criteria.text}</if>
ORDER BY name
</script>
它用于通过正则表达式搜索制造商名称。结果包含制造商代码和名称以及有关regexp匹配项的详细信息。结果通过iBatis结果映射存储在非实体POJO类中

您能建议如何使用JPA实现这一点吗?或者你会推荐另一种方法来实现这一点吗?您将如何解决此任务?
请详细解释一下,我是这个领域的新手。非常感谢。

我正在慢慢地向另一个方向迁移。