I'm using Oracle as database and Spring Data on a project with jBoss AS.
A simple query with a GROUP BY doesn't work.
This is the Repository code:
public interface UseCaseRepository extends JpaRepository<UseCase, Long> {
  @Query("SELECT uc.channel FROM UseCase uc WHERE uc.activity = ?1 GROUP BY uc.channel")
  public List<Channel> getUseCaseChannelByActivity(Activity activity);
[...]
The error is shown below
2016-06-29 17:22:12,780 WARN  [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (http--0.0.0.0-443-3) SQL Error: 979, SQLState: 42000
2016-06-29 17:22:12,780 ERROR [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (http--0.0.0.0-443-3) ORA-00979: not a GROUP BY expression
The same query with a MySQL database has no problem.
These are the entities
@Entity
@Table(name="USE_CASE")
@NamedQuery(name="UseCase.findAll", query="SELECT u FROM UseCase u")
public class UseCase implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Column(name="USE_CASE_ID")
    private long useCaseId;
    //uni-directional many-to-one association to Activity
    @ManyToOne
    @JoinColumn(name="ACTIVITY_ID")
    private Activity activity;
    //uni-directional many-to-one association to Channel
    @ManyToOne
    @JoinColumn(name="CHANNEL_ID")
    private Channel channel;
    //uni-directional many-to-one association to PushTool
    @ManyToOne
    @JoinColumn(name="PUSH_TOOL_ID")
    private PushTool pushTool;
    //uni-directional many-to-one association to Tool
    @ManyToOne
    @JoinColumn(name="TOOL_ID")
    private Tool tool;
    //uni-directional many-to-many association to DataSource
    @ManyToMany
    @JoinTable(
        name="USE_CASE_DATA_SOURCE"
        , joinColumns={
            @JoinColumn(name="USE_CASE_ID")
            }
        , inverseJoinColumns={
            @JoinColumn(name="DATA_SOURCE_ID")
            }
        )
    private List<DataSource> dataSources;
[...]
@Entity
@NamedQuery(name="Activity.findAll", query="SELECT a FROM Activity a")
public class Activity implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Column(name="ACTIVITY_ID")
    private long activityId;
    private String attribute;
    @Column(name="\"TYPE\"")
    private String type;
[...]
@Entity
@NamedQuery(name="Channel.findAll", query="SELECT c FROM Channel c")
public class Channel implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Column(name="CHANNEL_ID")
    private long channelId;
    private String attribute;
    @Column(name="\"TYPE\"")
    private String type;
[...]
Any idea how to solve? Thanks