1、pojo类编写
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.search.annotations.Analyzer;
import org.hibernate.search.annotations.DocumentId;
import org.hibernate.search.annotations.Field;
import org.hibernate.search.annotations.Index;
import org.hibernate.search.annotations.Indexed;
import org.hibernate.search.annotations.Store;
import org.wltea.analyzer.lucene.IKAnalyzer;
@Entity
@Table(name="student")
@Indexed(index="student")
public class Student extends DominObject {
/**
*
*/
private static final long serialVersionUID = 9090499971596826674L;
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
/**
* 业务主键ID,自增,增量1
*/
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Id
@DocumentId
private Integer id;
/**
* 学生姓名
*/
@Column(length = 10, name = "student_name", nullable = false)
@Field(name = "content", store = Store.YES, index = Index.TOKENIZED, analyzer = @Analyzer(impl = IKAnalyzer.class))
private String name = "";
/**
* 学生年龄
*/
@Column(length = 2, name = "student_age", nullable = false)
private Integer age = 0;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
2、dao接口
import java.util.List;
import com.zyn.ssh.pojo.Student;
public interface StudentDao extends BaseEntityDao<Student, Integer>{
public List<Student> findStudentByLike(String name);
}
3、dao接口实现
import java.io.Serializable;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.search.FullTextSession;
import org.hibernate.search.Search;
import org.springframework.stereotype.Repository;
import org.wltea.analyzer.lucene.IKQueryParser;
import com.zyn.ssh.dao.StudentDao;
import com.zyn.ssh.pojo.Student;
@Repository("studentDao")
public class StudentDaoImpl extends BaseEntityDaoImpl<Student, Integer>
implements StudentDao {
//将数据保存并建立索引
public Serializable save(Student entity) {
FullTextSession fullTextSession = Search
.getFullTextSession(getSession());
return fullTextSession.save(entity);
}
@SuppressWarnings("unchecked")
//通过名字模糊查询学生
public List<Student> findStudentByLike(String name) {
try {
Query query = Search.getFullTextSession(getSession())
.createFullTextQuery(IKQueryParser.parse("content", name),
Student.class);
List<Student> result = query.list();
return result;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
分享到:
相关推荐
Hibernate Search是Hibernate ORM框架的一个扩展,它将强大的全文搜索引擎Lucene集成到Java持久化层,使得开发者可以方便地在数据库中进行全文搜索。本文将详细探讨`hibernate-search-3.2.0.Final-dist.tar`这一版本...
Hibernate Search是Java世界中Hibernate ORM框架的一个强大扩展,它将全文搜索能力引入到持久化层,使得开发者能够轻松地在数据库中的数据上执行复杂的全文检索。本文将详细探讨Hibernate Search 4.1.1.Final版本的...
SSH(Spring、Struts、Hibernate)作为经典的Java Web开发框架,Spring负责依赖注入和事务管理,Struts处理MVC模式,而Hibernate则作为持久层解决方案。将Hibernate Search整合进SSH,可以极大地提升用户在应用中的...
Hibernate Search是Hibernate ORM框架的一个强大扩展,它将全文搜索引擎的功能集成到了Java持久层,使得开发者可以方便地在数据库中进行复杂的文本搜索。本篇文章将深入探讨Hibernate Search的源码,帮助你理解其...
Hibernate Search是基于Apache Lucene库构建的,允许开发者在Hibernate实体上执行复杂的全文检索和排序操作。通过集成到ORM层,它使得在数据库中的对象可以直接参与全文搜索,大大简化了企业级应用的搜索功能开发。 ...
Hibernate Search基于Apache Lucene库,允许开发者在持久化对象上执行复杂的全文本查询,同时也支持排序和分页。它无缝地集成了ORM层和搜索层,使得在数据库和搜索之间进行切换变得轻松便捷。 二、主要特性 1. 全文...
总之,Hibernate Search为Hibernate持久化层带来了强大的全文搜索能力,结合Apache Lucene的强大功能,极大地丰富了数据检索和分析的场景。通过深入理解其核心概念和最佳实践,开发者可以构建出高度可扩展且响应迅速...
此外,它还可以生成基于Hibernate的DAO(数据访问对象)层,进一步提高了开发效率。 接下来是hibernate-annotations-3.3.0.GA,这是Hibernate 3.x系列的一个版本,包含了Hibernate的注解支持。在Java中,注解是一种...
- `hibernate-search-orm.jar`:提供了全文搜索功能,基于Lucene集成。 - `hibernate-annotations.jar`和`hibernate-validator.jar`:前者提供了ORM的注解支持,后者实现了JSR 303/349 Bean Validation规范,用于...
《Hibernate Search in Action》这本书深入探讨了Hibernate Search这一强大的全文搜索引擎集成框架,它将全文搜索功能无缝地融入到Java持久层框架Hibernate之中。通过利用Lucene库的强大功能,Hibernate Search为...
在Spring中,我们可以轻松地集成其他库,如Hibernate,以实现持久层操作。 Hibernate是Java领域的一款对象关系映射(ORM)框架,它简化了数据库操作,使开发者可以使用面向对象的方式来处理数据库事务。而Hibernate...
Hibernate Search是Hibernate ORM的一个扩展,它允许开发者在Java应用中实现全文搜索功能,无缝集成到持久化层。该技术的核心是Lucene,一个高性能、全文本搜索库,提供了丰富的搜索功能和灵活性。 首先,让我们...
针对JavaBeans的索引特别有用当我们要对数据库进行索引或刚好用户使用持久层ORM技术如:Hibernate,JDO,Torque,TopLink进行开发时。 This project aims to integrate lius into compass(that is based on lucene). ...
在给定的文件中,`hibernate-search-engine-4.2.0.Beta2.jar`和`hibernate-search-orm-4.2.0.Beta2.jar`就是Hibernate Search的相关组件,它们提供了对Lucene的集成,使得我们能够在Hibernate ORM的基础上实现高效、...
这个“hibernate的jar包”很可能包含了Hibernate框架的核心库和其他相关组件,比如Hibernate Search,这从压缩包子文件的文件名称“hibernate-search-5.5.2.Final”可以推断出来。 Hibernate的核心功能包括: 1. *...
5. **查询语言**:`hibernate-search-orm.jar`可能包含了Hibernate的全文搜索功能,它利用了Lucene库来提供对数据库中的文本进行索引和搜索的能力。 6. **依赖库**:其他的JAR文件可能是Hibernate依赖的第三方库,...
Hibernate Search是Hibernate的一个扩展,它为Hibernate实体提供了全文搜索功能,基于Lucene库实现。这允许开发者对数据库中的文本进行复杂、高效的全文检索。 1. **全文搜索**: Hibernate Search允许开发者在Java...
在Java EE开发中,SSH(Struts、Spring、Hibernate)是经典的三层架构解决方案,其中Hibernate承担了持久层的角色。 标题中的“hibernate全jar包”指的是包含了Hibernate框架运行所需的所有依赖库的集合,这通常...
在这个整合中,Hibernate作为持久层框架,负责对象关系映射(ORM);Struts作为表现层框架,处理HTTP请求和视图展示;Spring作为应用层框架,提供了依赖注入(DI)和面向切面编程(AOP),并协调其他组件的交互。 ...
在Blog系统中,Hibernate作为数据持久化层,负责数据库的CRUD(创建、读取、更新、删除)操作。通过Hibernate,开发者可以避免编写大量的SQL语句,提高开发效率,同时保持代码的可维护性和可扩展性。 四、Blog系统...