Q:

The value for annotation attribute Query.value must be a constant expression

Estoy utilizando Spring boot con jpa el cual me permite hacer consultas sql por medio de etiquetas pero estoy teniendo un problema, quiero asignarle una consulta diferente pero por ser una etiqueta me dice que el valor debe ser constante y si defino la variable como "public static final" me sigue apareciendo este error, existe alguna manera de solucionar este problema para hacer consultas distintas con la misma etiqueta.
public static final String QUERY = class.getCount();

@Query(value = QUERY, nativeQuery = true)
public List<Class> findByIdSQL();

A:

Necesitas crear una clase anotada como entidad, que mapee los campos de tu tabla:
@Entity
@Table(name = "mi_tabla")
public class MiTabla implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;

    @Column(name = "mi_campo")
    private String miCampo;

    ...
}

Luego creas una clase repositorio en la que defines tu metodo que obtiene un listado por campo:
@Repository
public interface MiTablaRepository extends JpaRepository<MiTabla, Long> {
    List<MiTabla> findByMiCampo(String parametroMiCampo);
}

Como puedes ver, con JPA no es necesario escribir el query si es tan sencillo como solo filtrar por un campo.
La manera de hacer uso del repositorio seria la siguiente:
private MiTablaRepository miTablaRepository;

...

private void miMetodo() {
    MiTabla miTabla = miTablaRepository.findById(42);

    List<MiTabla> miTablas = miTablaRepository.findByMiCampo("blabla");

    long cantidad = miTablaRepository.count();

    ...
}

