JBoss Community

Weired JPA named query @NamedQuery behaviour

created by Christian Groove in EJB3 - View the full discussion

Salut

 

i recogniozed a strange behaviour, declaring anmed

queries with a annotation. Here is some code:

 

 

 

@NamedQueries(

    {

        @NamedQuery(

            name=Dbean1.GET_COMPOSITION,

            query=Dbean1.JPQL_COMPOSITION)

    }

)

 

 

 

where:

 

@Entity

public class Dbean1. implements Serializable

{

   /* some code */

 

 

   final public static String GET_COMPOSITION = ".... composition " ;

   final public static String GET_COMPOSITION = "SELECT dbean FROM ..... " ;

 

 

this looks fine. But imagine iff you a to implement a recurring part of the

where expression and start thinking of a java code, that could help you to

create that JPA-QL string.

So when you write:

 

@Entity

public class Dbean1. implements Serializable

{

   /* some code */

 

 

   final public static String GET_COMPOSITION      = ".... composition " ;


   final public static String GENERATED_WHERE_EXPR = generateWehreCompo() ;


   final public static String GET_COMPOSITION      =

                          "SELECT dbean FROM ..... +

                          WHERE" + GENERATED_WHERE_EXPR  ... ;

 

 

JBoss5.1 will tell you "The value for annotation attribute NamedQuery.query must be a

constant expression" So is final private static not constant enough ???

Reply to this message by going to Community

Start a new discussion in EJB3 at Community