mysql Quarkus - Panache如何执行自定义查询

s3fp2yjn  于 12个月前  发布在  Mysql
关注(0)|答案(2)|浏览(124)

在Spring中,我们可以像这样声明自定义查询

@Query(
  value = "SELECT * FROM USERS u WHERE u.status = 1", 
  nativeQuery = true)
Collection<User> findAllActiveUsersNative();

字符串
但在 quarkus 中我找不到关于如何在 quarkus 中做到这一点的参考资料
有没有人有经验如何做到这一点?

olhwl3o2

olhwl3o21#

在你的User实体中写一些类似的东西(它应该扩展PanacheEntity):

public static List<User> findByStatus() {
   return list("status=1");
}

字符串
另请参阅文档:https://quarkus.io/guides/hibernate-orm-panache#adding-entity-methods

w3nuxt5m

w3nuxt5m2#

您需要将自定义查询声明为NamedQuery。请参阅:https://quarkus.io/guides/hibernate-orm-panache#named-queries
在您的场景中,它可能看起来像这样:

@Entity(name = "USERS")
@NamedQueries({
        @NamedQuery(name = "custom.allActiveUsers", query = "FROM USERS u WHERE u.status = 1")
})
public class User extends PanacheEntity implements Serializable {

    @Column(name = "version")
    public Long version;
    
    public static List<User> getActiveUsers() {
        return find("#custom.allActiveUsers");
    }
}

字符串

相关问题