您的位置:首页 > Web前端

compass配置文件中component和reference的差异

2008-03-19 10:15 260 查看
在类 ArchmisImpl.java中引用了类Library.


package com.resources.pojoimpl;




import java.util.Date;




import com.resources.pojo.Archmis;


import com.resources.pojo.Library;


import com.resources.pojo.Type;






public class ArchmisImpl implements Archmis,Identifiable ...{




public Long id = 0L;


public String title = null;


public String details = null;


public String summary = null;


public String keyWord = null;


public String path = null;


public Library library = null;


public Type type;


public Date publishDate = null;






public String getDetails() ...{


return this.details;


}






public Long getId() ...{




return this.id;


}






public String getKeyWord() ...{




return this.keyWord;


}






public Library getLibrary() ...{




return this.library;


}






public String getPath() ...{




return this.path;


}






public String getSummary() ...{




return this.summary;


}






public String getTitle() ...{




return this.title;


}






public Type getType() ...{




return this.type;


}






public void setDetails(String details) ...{


this.details = details;


}








public void setKeyWord(String keyWord) ...{


this.keyWord = keyWord;


}






public void setLibrary(Library library) ...{


this.library = library;


}






public void setPath(String path) ...{


this.path = path;


}






public void setSummary(String summary) ...{


this.summary = summary;


}






public void setTitle(String title) ...{


this.title = title;


}






public void setType(Type type) ...{


this.type = type;


}






public Date getPublishDate() ...{


return this.publishDate;


}






public void setPublishDate(Date publishDate) ...{


this.publishDate = publishDate ;


}






public void setId(Long id) ...{


this.id = id;


}


}




package com.resources.pojoimpl;




import java.util.List;




import com.resources.pojo.Archmis;


import com.resources.pojo.Library;






public class LibraryImpl implements Library,Identifiable ...{


public Long id;


public String name = null;


public String manager = null;


public String address = null;


public String url = null;


public List<Archmis> archmis = null;




public String getName() ...{


return name;


}




public void setName(String name) ...{


this.name = name;


}




public String getManager() ...{


return manager;


}




public void setManager(String manager) ...{


this.manager = manager;


}




public String getAddress() ...{


return address;


}




public void setAddress(String address) ...{


this.address = address;


}




public String getUrl() ...{


return url;


}




public void setUrl(String url) ...{


this.url = url;


}




public List<Archmis> getArchmis() ...{


return archmis;


}




public void setArchmis(List<Archmis> archmis) ...{


archmis = archmis;


}




public Long getId() ...{


// TODO Auto-generated method stub


return id;


}


}



在配置文件中,有两种配置方式如下.

1.<reference name="library" ref-alias="${library.library}"/>:是引用方式,

在compass reference中有如下解释:

A searchable reference mapping maps between one root searchable class and the other. The mapping is only used for keeping the relationship "alive" when performing un-marshalling. The marshalling process marshals only the referenced object ids (based on its id mappings) and use it later in the un-marshalling process to load the referenced object from the index.

就是说:reference引用的类必须是可检索的根类.如此设置被引用类的root必须设置为true,

2. <component name="library" ref-alias="${library.library}"/>

A searchable component mapping embeds a searchable class within its owning searchable class. The mapping is used to allow for searches that "hit" the component referenced searchable class to return the owning searchable class (or its parent if it also acts a component mapping up until the root object that was saved).

The component referenced searchable class can be either root or not. An example for a non root component can
be a Person class (which is root) with a component mapping to a non root searchable class Name (with
firstName and lastName fields). An example for a root component can be a Customer root searchable class and
an Account searchable class, where when searching for account details, both Account and Customer should
return as hits.


<?xml version="1.0"?>


<!DOCTYPE compass-core-mapping PUBLIC


"-//Compass/Compass Core Mapping DTD 1.0//EN"


"http://www.opensymphony.com/compass/dtd/compass-core-mapping.dtd">




<compass-core-mapping package="com.resources.pojoimpl">




<class name="ArchmisImpl" alias="${library.archmisImpl}" root="true">


<id name="id" />


<property name="title">


<meta-data>${library.title}</meta-data>


</property>


<property name="details">


<meta-data boost="2">${library.details}</meta-data>


</property>


<property name="summary">


<meta-data>${library.summary}</meta-data>


</property>


<property name="keyWord">


<meta-data>${library.keyword}</meta-data>


</property>


<property name="path">


<meta-data>${library.path}</meta-data>


</property>


<property name="publishDate">


<meta-data>${library.publishDate}</meta-data>


</property>


<reference name="library" ref-alias="${library.library}"/>
<component name="library" ref-alias="${library.library}"/>


</class>


<class name="LibraryImpl" alias="${library.library}" root="false">


<property name="name">


<meta-data>${library.name}</meta-data>


</property>


<property name="manager">


<meta-data>${library.manager}</meta-data>


</property>


<property name="address">


<meta-data>${library.address}</meta-data>


</property>


<property name="url">


<meta-data>${library.url}</meta-data>


</property>




</class>




<class name="TypeImpl" alias="type" root="false">


</class>


</compass-core-mapping>




<?xml version="1.0"?>


<!DOCTYPE compass-core-meta-data PUBLIC


"-//Compass/Compass Core Meta Data DTD 1.0//EN"


"http://www.opensymphony.com/compass/dtd/compass-core-meta-data.dtd">




<compass-core-meta-data>




<meta-data-group id="library" displayName="Library Meta Data">




<description>Library Meta Data</description>


<uri>http://resources/pojoimpl</uri>




<alias id="archmisImpl" displayName="Archmis">


<description>archmisImpl alias</description>


<uri>http://resources/pojoimpl/ArchmisImpl</uri>


<name>archmisImpl</name>


</alias>




<alias id="library" displayName="Library">


<description>archmisImpl alias</description>


<uri>http://resources/pojoimpl/libraryImpl</uri>


<name>library</name>


</alias>




<meta-data id="keyword" displayName="Keyword">


<description>Keyword associated with an entity</description>


<uri>http://compass/sample/library/keyword</uri>


<name>keyword</name>


</meta-data>




<meta-data id="name" displayName="Name">


<description>The name of a person (firstName or lastName) without the title</description>


<uri>http://compass/sample/library/name</uri>


<name>name</name>


</meta-data>




<meta-data id="path" displayName="Path">


<description>The path of a archmis</description>


<uri>http://compass/sample/library/path</uri>


<name>path</name>


</meta-data>






<meta-data id="type" displayName="type">


<description>type of the book</description>


<uri>http://compass/sample/library/type</uri>


<name>type</name>


</meta-data>




<meta-data id="title" displayName="Title">


<description>The title of a book or an article</description>


<uri>http://compass/sample/library/title</uri>


<name>title</name>


</meta-data>




<meta-data id="content" displayName="Content">


<description>The content of a book or an article</description>


<uri>http://compass/sample/library/content</uri>


<name>content</name>


</meta-data>




<meta-data id="publishDate" displayName="Publish Date">


<description>The publish date of a book or an article</description>


<uri>http://compass/sample/library/publishDate</uri>


<name>publish</name>


</meta-data>




<meta-data id="summary" displayName="Summary">


<description>The summary of a book or an article</description>


<uri>http://compass/sample/library/summary</uri>


<name>summary</name>


</meta-data>




<meta-data id="details" displayName="Details">


<description>The details of a book or an article</description>


<uri>http://compass/sample/library/details</uri>


<name>details</name>


</meta-data>




<meta-data id="library" displayName="Library">


<description>The details of a book or an article</description>


<uri>http://compass/sample/library/library</uri>


<name>library</name>


</meta-data>




<meta-data id="manager" displayName="Manager">


<description>The details of a book or an article</description>


<uri>http://compass/sample/library/library</uri>


<name>manager</name>


</meta-data>


<meta-data id="address" displayName="Address">


<description>The details of a book or an article</description>


<uri>http://compass/sample/library/library</uri>


<name>address</name>


</meta-data>


<meta-data id="url" displayName="URL">


<description>The details of a book or an article</description>


<uri>http://compass/sample/library/library</uri>


<name>url</name>


</meta-data>


<meta-data id="archmis" displayName="Archmis">


<description>The details of a book or an article</description>


<uri>http://compass/sample/library/library</uri>


<name>archmis</name>


</meta-data>


</meta-data-group>




</compass-core-meta-data>

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐