I have no idea about the structure of your data and the required functionality, but this approximate example should suffice as a basis for further independent search for a solution.
Article.java
import javax.persistence.Entity; import javax.persistence.Column; import javax.persistence.Id; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; @Entity public class Article { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; @Column private String description; public void setId(long id) { this.id = id; } public long getId() { return id; } public void setDescription(String description) { this.description = description; } public String getDescription() { return description; } }
SomeTag.java
import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; import org.hibernate.service.ServiceRegistry; import org.hibernate.service.ServiceRegistryBuilder; public class SomeTag extends TagSupport { private SessionFactory factory; private int count; public SomeTag() { Configuration configuration = new Configuration(); configuration.configure(); ServiceRegistryBuilder srBuilder = new ServiceRegistryBuilder(); srBuilder.applySettings(configuration.getProperties()); ServiceRegistry serviceRegistry = srBuilder.buildServiceRegistry(); factory = configuration.buildSessionFactory(serviceRegistry); } public void setCount(int count){ this.count = count; } @Override public int doStartTag() throws JspException { Session session = factory.openSession(); Query query = session.createQuery("from Article where id = :id"); query.setParameter("id", count); List<Article> articles = query.list(); for (Article article : articles) { out.write(article.getDescription().substring(0, 200)); } session.close(); } }
doStartTag()method, get a session from the factory, make an HQL query using the session, and loop around the resulting list of entities, displaying the required fields inout. - Sergey Gornostaev