posts - 33,  comments - 70,  trackbacks - 0
Compass也提供另一直配置, 使用java5 的annotation 来进行OSEM.
下面就是简单的Plain Old Java Object (POJO)类型的搜索类,使用了Compass annotations.在运行时刻, compass抽取对象属性插入和相应源数据索引中.

public class Product  {     
    @SearchableId
    
private Integer id;
    
private Category category;
    
private Integer inventory;
    
private String name;
    
private String descn;
    
private Double unitprice;
    
private String status;
    
private String shortDescn = null;
    
private Date createTime;
    
private Date modifyTime;
    
private User createUser;
    
private User modifyUser;
    @SearchableProperty(name 
= "name")
    
public String getName() {
        
return this.name;
    }

    @SearchableProperty(name 
= "descn")
    
public String getDescn() {
        
return this.descn;
    }

    
public Double getUnitprice() {
        
return this.unitprice;
    }

    
public void setUnitprice(Double unitprice) {
        
this.unitprice = unitprice;
    }

    setter
/getter

@Searchable(alias = "book")
public class Book extends Product {
    
private String image;
    
private String author;
    
private String publisher;
    
private String publishDate;
    
public Book() {}
    
public String getImage() {
      
return image;
    }

    
public void setImage(String image) {
      
this.image = image;
    }

    @SearchableProperty(name 
= "author")
    
public String getAuthor() {
      
return author;
    }

    
public void setAuthor(String author) {
      
this.author = author;
    }

    @SearchableProperty(name 
= "publisher")
    
public String getPublisher() {
      
return publisher;
    }

    
public void setPublisher(String publisher) {
      
this.publisher = publisher;
    }

    
public String getPublishDate() {
      
return publishDate;
    }

    
public void setPublishDate(String publishDate) {
      
this.publishDate = publishDate;
    }

}

注意: 对象必须遵守下面的规则.
1. 所有的持久化类必须有默认构造函数(没参数构造方法).
2. OSEM要求映射类JavaBean必须有一个或更多的id主建. id属性可以是对象类型,例如java.lang.String or java.util.Date.
  并且类注解使用@SearchableClassConverter或者使用定义Converter(通常继承Compass AbstractBasicConverter).
3. 使用JavaBean规范, getter/setter.

更多:@Searchable,@SearchableId,@SearchableProperty and So On Look: http://www.opensymphony.com/compass/content/documentation.html

posted on 2006-06-04 22:44 地狱男爵(hellboys) 阅读(2566) 评论(3)  编辑  收藏 所属分类: 编程语言(c/c++ java python sql ......)

FeedBack:
# re: compass 中使用annatation 简化配置
2006-06-16 09:54 | 上帝使者
确实简单不少啊。现在对annatation有点改观了,呵呵。

期待对高亮搜索和html检索的文章,哈哈  回复  更多评论
  
# re: compass 中使用annatation 简化配置
2006-12-13 14:33 | joseph
你好
你有msn和qq吗我现在也在学compass 我怎么样吧 spring mvc架构改造成webwork呀  回复  更多评论
  
# re: compass 中使用annatation 简化配置
2008-11-20 10:13 | 老丁
遇到 clob和blob字段报错:
Exception in thread "main" org.compass.core.mapping.MappingException: No converter defined for type [java.sql.Clob]

要怎么解决呀?  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问  
 
<2006年6月>
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678

常用链接

随笔分类

随笔档案

文章档案

相册

连接

最新随笔

搜索

  •  

最新评论

阅读排行榜

评论排行榜