Switch to full style
Java persistent API
Post a reply

@QueryHint annotation to customize the query

Wed Apr 21, 2010 5:02 pm

You can use @QueryHint annotation to customize your JPA query ,based on your JPA extension , this annotation parameter will differs. There are two parameter ( name and value ) .

The following code example show you are using "toplink" JPA extension .
Code:

package com
.codemiles.jpa;
import java.util.Collection;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.OneToMany;
import javax.persistence.QueryHint;


@
Entity
@NamedQueries({
    @
NamedQuery(name="FinlAllTopics",
                
query="SELECT t FROM Topic t"),
@
NamedQuery(name="FindTopicByTitle",
            
query="SELECT t FROM Topic t WHERE t.title = :title")
            ,
            @
NamedQuery(name="FindTopicByTitleAndDate",
                        
query="SELECT t FROM Topic t WHERE t.title = :title and t.creationDate=:creationDate",
                        
hints={@QueryHint(name="toplink.refresh"value="true")} ) 
                       
}

)
@
Table(name="TOPIC")
public class 
Topic implements java.io.Serializable{
    
/**
     * 
     */
    
private static final long serialVersionUID 1L;
    @
Id
    
private int Id;
    private 
String title;
    private 
Date creationDate;
    private 
Date modifedDate;
    private 
String content;
    @
OneToMany(mappedBy="topic")
    private 
Collection<Commentcomments;

    public 
int getId() {
        return 
Id;
    }
    public 
void setId(int id) {
        
Id id;
    }
    
    @
Column(name="TITLE")
    public 
String getTitle() {
        return 
title;
    }
    public 
void setTitle(String title) {
        
this.title title;
    }
    
    @
Column(name="CREATION_DATE")
    public 
Date getCreationDate() {
        return 
creationDate;
    }
    public 
void setCreationDate(Date creationDate) {
        
this.creationDate creationDate;
    }
    
    @
Column(name="MODIFED_DATE")
    public 
Date getModifedDate() {
        return 
modifedDate;
    }
    public 
void setModifedDate(Date modifedDate) {
        
this.modifedDate modifedDate;
    }
    
    @
Column(name="CONTENT")
    public 
String getContent() {
        return 
content;
    }
    public 
void setContent(String content) {
        
this.content content;
    }
    public 
void setComments(Collection<Commentcomments) {
    
this.comments comments;
    }
    public 
Collection<CommentgetComments() {
    return 
comments;
    }
}
 


TopLink home url :
http://www.oracle.com/technology/produc ... index.html



Post a reply
  Related Posts  to : @QueryHint annotation to customize the query
 Skin customize problems..     -  
 @Temporal JPA annotation     -  
 Id reference annotation relationship     -  
 @Transient annotation in JPA entity     -  
 Compound Key and IdClass annotation     -  
 EJB-QL IN where query     -  
 query about execution     -  
 Query about jsp and printer     -  
 using parameter with name query     -  
 update query example     -  

Topic Tags

Java JPA