我目前正在尝试为我的一个实体类实现 @NamedNativeQuery。我的项目使用 Spring 数据,我的数据库中有两个表:Pizza 和 Town(披萨的起源)。查询本身包括通过提供城镇名称来查找披萨。因此,查找 town.name 是否包含提供的参数(在我们的例子中是城镇名称的一部分)。所以很自然,我有这样的事情:
@NamedNativeQueries({
@NamedNativeQuery(
name = "Pizza.findByTown",
query = "select p.* from pizza p join town t on p.town_id = t.id on where t.name like '%?1%'",
resultClass = Pizza.class
)
})
public class Pizza {
}
所以在我的 PizzaRepository 中,我添加了以下内容
public interface PizzaRepository extends JpaRepository<Pizza, Long>, QueryDslPredicateExecutor<Pizza> {
Pizza findByTown(final String townName)
似乎 % 不适用于命名查询。有解决办法吗?任何帮助,将不胜感激。
谢谢
[编辑]:我添加了带注释的类 Town
@Entity
@Table(name = "Town")
public class Town {
@Id
@Column(name = "town_id")
private String townId;
@Column(name = "name", nullable = false)
private String name;
@Lob
@Column(name = "picture", nullable = false)
private byte[] picture;
}