ServiceUserBean 包含 ServiceProjcectBean 1:N关系,
贴出配置文件如下
ServiceUserBean.cpm.xml
<?xml version="1.0"?>
[code=XML]<!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="beans">    <class name="ServiceUserBean" alias="${config.serviceUserBean}">
    
        
  
    
  
        <id name="id" />
  
          
        <property name="serviceName">  
  
            <meta-data>serviceNameIndex</meta-data>  
  
        </property> 
        <property name="area">
         <meta-data>areaIndex</meta-data>
        </property>
   <property name="tese">
         <meta-data>areaIndex</meta-data>
        </property>
       
     <reference name="serviceProjectBeans" ref-alias="${config.serviceProjectBean}" />
    </class>
    
</compass-core-mapping>
ServiceProjectBean.cpm.xml<?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="beans">    <class name="ServiceProjectBean" alias="${config.serviceProjectBean}">
    
        
  
        <!-- 你可以通过这个配置来在底层给这个对象加一个Field("type","java") -->  
  
        <id name="id" />
  
        <!-- 配置一下属性 -->  
  
        <property name="projectName">  
  
            <meta-data>projectNameIndex</meta-data>  
  
        </property> 
        <property name="feeExplain">
         <meta-data>feeExplainIndex</meta-data>
        </property>
   <property name="serviceExplain">
         <meta-data>serviceExplainIndex</meta-data>
        </property>
       
    
    </class>
    
</compass-core-mapping>[/code]library.cmd.xml<?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="config" displayName="config Meta Data">
    
        <description>Library Meta Data</description>       
        <uri>http://compass/sample/library/beans</uri>
        
              <alias id="serviceUserBean" displayName="ServiceUserBean">
            <description>serviceUserBean alias</description>
            <uri>http://beans</uri>
            <name>serviceUserBean</name> 
        </alias>
         <alias id="serviceProjectBean" displayName="ServiceProjectBean">
            <description>serviceProjectBean alias</description>
            <uri>http://beans</uri>
            <name>serviceProjectBean</name> 
        </alias>
        
    </meta-data-group>
    
</compass-core-meta-data>

解决方案 »

  1.   

    ServiceUserBeanpackage beans;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;/**
     * TbServiceUser entity.
     * 
     * @author MyEclipse Persistence Tools
     */public class ServiceUserBean implements Identifiable{ // Fields /**
     * 
     */

    private long id;
    private Integer lcatalogId;
    private Integer scatalogId;
    private Integer areaId;
    private String username;
    private String password;
    private String serviceName;
    private String area;
    private String phone;
    private String fax;
    private String bus;
    private String yingyedate;
    private String jiamengdate;
    private String youhui;
    private String image;
    private String summary;
    private String earth;
    private String servicePhone;
    private Integer renqi;
    private String video;
    private Integer hot;
    private Date hotdate;
    private Integer deleted;
    private Integer nextAreaId;
    private String tese;
    private String contacts;
    private Integer contract;
    private String serviceReg;
    private String teseSummary;
    private String tags;
    private String ers;
    private String emaile;
    private String yystartdate;
    private String yyenddate;
    private Integer takeAway;
    private String takeSummary;
    private Float discountRate;
    private Float consume;
    private String chargingMethod;
    private String corporate;
    private Integer village;
    private String authCode;
    private String zipCode;
    private String website;

    private List<beans.ServiceProjectBean> serviceProjectBeans  = new ArrayList<ServiceProjectBean>();
    private beans.ServiceProjectBean projectBean;
    // Constructors public beans.ServiceProjectBean getProjectBean() {
    return projectBean;
    } public void setProjectBean(beans.ServiceProjectBean projectBean) {
    this.projectBean = projectBean;
    } /** default constructor */
    public ServiceUserBean() {
    } /** full constructor */

    // Property accessors public Long getId() {
    return this.id;
    } public void setId(Integer id) {
    this.id = id;
    } public Integer getLcatalogId() {
    return this.lcatalogId;
    } public void setLcatalogId(Integer lcatalogId) {
    this.lcatalogId = lcatalogId;
    } public Integer getScatalogId() {
    return this.scatalogId;
    } public void setScatalogId(Integer scatalogId) {
    this.scatalogId = scatalogId;
    } public Integer getAreaId() {
    return this.areaId;
    } public void setAreaId(Integer areaId) {
    this.areaId = areaId;
    } public String getUsername() {
    return this.username;
    } public void setUsername(String username) {
    this.username = username;
    } public String getPassword() {
    return this.password;
    } public void setPassword(String password) {
    this.password = password;
    } public String getServiceName() {
    return this.serviceName;
    } public void setServiceName(String serviceName) {
    this.serviceName = serviceName;
    } public String getArea() {
    return this.area;
    } public void setArea(String area) {
    this.area = area;
    } public String getPhone() {
    return this.phone;
    } public void setPhone(String phone) {
    this.phone = phone;
    } public String getFax() {
    return this.fax;
    } public void setFax(String fax) {
    this.fax = fax;
    } public String getBus() {
    return this.bus;
    } public void setBus(String bus) {
    this.bus = bus;
    } public String getYingyedate() {
    return this.yingyedate;
    } public void setYingyedate(String yingyedate) {
    this.yingyedate = yingyedate;
    } public String getJiamengdate() {
    return this.jiamengdate;
    } public void setJiamengdate(String jiamengdate) {
    this.jiamengdate = jiamengdate;
    } public String getYouhui() {
    return this.youhui;
    } public void setYouhui(String youhui) {
    this.youhui = youhui;
    } public String getImage() {
    return this.image;
    } public void setImage(String image) {
    this.image = image;
    } public String getSummary() {
    return this.summary;
    } public void setSummary(String summary) {
    this.summary = summary;
    } public String getEarth() {
    return this.earth;
    } public void setEarth(String earth) {
    this.earth = earth;
    } public String getServicePhone() {
    return this.servicePhone;
    } public void setServicePhone(String servicePhone) {
    this.servicePhone = servicePhone;
    } public Integer getRenqi() {
    return this.renqi;
    } public void setRenqi(Integer renqi) {
    this.renqi = renqi;
    } public String getVideo() {
    return this.video;
    } public void setVideo(String video) {
    this.video = video;
    } public Integer getHot() {
    return this.hot;
    } public void setHot(Integer hot) {
    this.hot = hot;
    } public Date getHotdate() {
    return this.hotdate;
    } public void setHotdate(Date hotdate) {
    this.hotdate = hotdate;
    } public Integer getDeleted() {
    return this.deleted;
    } public void setDeleted(Integer deleted) {
    this.deleted = deleted;
    } public Integer getNextAreaId() {
    return this.nextAreaId;
    } public void setNextAreaId(Integer nextAreaId) {
    this.nextAreaId = nextAreaId;
    } public String getTese() {
    return this.tese;
    } public void setTese(String tese) {
    this.tese = tese;
    } public String getContacts() {
    return this.contacts;
    } public void setContacts(String contacts) {
    this.contacts = contacts;
    } public Integer getContract() {
    return this.contract;
    } public void setContract(Integer contract) {
    this.contract = contract;
    } public String getServiceReg() {
    return this.serviceReg;
    } public void setServiceReg(String serviceReg) {
    this.serviceReg = serviceReg;
    } public String getTeseSummary() {
    return this.teseSummary;
    } public void setTeseSummary(String teseSummary) {
    this.teseSummary = teseSummary;
    } public String getTags() {
    return this.tags;
    } public void setTags(String tags) {
    this.tags = tags;
    } public String getMarkers() {
    return this.ers;
    } public void setMarkers(String ers) {
    this.ers = ers;
    } public String getEmaile() {
    return this.emaile;
    } public void setEmaile(String emaile) {
    this.emaile = emaile;
    } public String getYystartdate() {
    return this.yystartdate;
    } public void setYystartdate(String yystartdate) {
    this.yystartdate = yystartdate;
    } public String getYyenddate() {
    return this.yyenddate;
    } public void setYyenddate(String yyenddate) {
    this.yyenddate = yyenddate;
    } public Integer getTakeAway() {
    return this.takeAway;
    } public void setTakeAway(Integer takeAway) {
    this.takeAway = takeAway;
    } public String getTakeSummary() {
    return this.takeSummary;
    } public void setTakeSummary(String takeSummary) {
    this.takeSummary = takeSummary;
    } public Float getDiscountRate() {
    return this.discountRate;
    } public void setDiscountRate(Float discountRate) {
    this.discountRate = discountRate;
    } public Float getConsume() {
    return this.consume;
    } public void setConsume(Float consume) {
    this.consume = consume;
    } public String getChargingMethod() {
    return this.chargingMethod;
    } public void setChargingMethod(String chargingMethod) {
    this.chargingMethod = chargingMethod;
    } public String getCorporate() {
    return this.corporate;
    } public void setCorporate(String corporate) {
    this.corporate = corporate;
    } public Integer getVillage() {
    return this.village;
    } public void setVillage(Integer village) {
    this.village = village;
    } public String getAuthCode() {
    return this.authCode;
    } public void setAuthCode(String authCode) {
    this.authCode = authCode;
    } public String getZipCode() {
    return this.zipCode;
    } public void setZipCode(String zipCode) {
    this.zipCode = zipCode;
    } public String getWebsite() {
    return this.website;
    } public void setWebsite(String website) {
    this.website = website;
    } public List<beans.ServiceProjectBean> getServiceProjectBeans() {
    return serviceProjectBeans;
    } public void setServiceProjectBeans(
    List<beans.ServiceProjectBean> serviceProjectBeans) {
    this.serviceProjectBeans = serviceProjectBeans;
    }
    public void addServiceProjectBean(beans.ServiceProjectBean bean){
    this.serviceProjectBeans.add(bean);
    }}
      

  2.   

    ServiceProjectBean
    package beans;/**
     * TbServiceProject entity.
     * 
     * @author MyEclipse Persistence Tools
     */public class ServiceProjectBean implements Identifiable{ // Fields /**
     * 
     */
    private static final long serialVersionUID = 1L;
    private Long id;
    private Integer lcatalogId;
    private Integer scatalogId;
    private String tiaoma;
    private String projectName;
    private String imagePath;
    private Float price;
    private String feeUnit;
    private String feeExplain;
    private String serviceExplain;
    private Integer recommend;
    private Integer lack;
    private Integer deleted;
    private Integer serviceUserId;
    private Integer zixun;
    private Integer hot; // Constructors /** default constructor */
    public ServiceProjectBean() {
    } /** minimal constructor */
    public ServiceProjectBean(Long id, String projectName, Float price,
    Integer recommend, Integer deleted) {
    this.id = id;
    this.projectName = projectName;
    this.price = price;
    this.recommend = recommend;
    this.deleted = deleted;
    } /** full constructor */
    public ServiceProjectBean(Long id, Integer lcatalogId, Integer scatalogId,
    String tiaoma, String projectName, String imagePath, Float price,
    String feeUnit, String feeExplain, String serviceExplain,
    Integer recommend, Integer lack, Integer deleted,
    Integer serviceUserId, Integer zixun, Integer hot) {
    this.id = id;
    this.lcatalogId = lcatalogId;
    this.scatalogId = scatalogId;
    this.tiaoma = tiaoma;
    this.projectName = projectName;
    this.imagePath = imagePath;
    this.price = price;
    this.feeUnit = feeUnit;
    this.feeExplain = feeExplain;
    this.serviceExplain = serviceExplain;
    this.recommend = recommend;
    this.lack = lack;
    this.deleted = deleted;
    this.serviceUserId = serviceUserId;
    this.zixun = zixun;
    this.hot = hot;
    } // Property accessors public Long getId() {
    return this.id;
    } public void setId(Long id) {
    this.id = id;
    } public Integer getLcatalogId() {
    return this.lcatalogId;
    } public void setLcatalogId(Integer lcatalogId) {
    this.lcatalogId = lcatalogId;
    } public Integer getScatalogId() {
    return this.scatalogId;
    } public void setScatalogId(Integer scatalogId) {
    this.scatalogId = scatalogId;
    } public String getTiaoma() {
    return this.tiaoma;
    } public void setTiaoma(String tiaoma) {
    this.tiaoma = tiaoma;
    } public String getProjectName() {
    return this.projectName;
    } public void setProjectName(String projectName) {
    this.projectName = projectName;
    } public String getImagePath() {
    return this.imagePath;
    } public void setImagePath(String imagePath) {
    this.imagePath = imagePath;
    } public Float getPrice() {
    return this.price;
    } public void setPrice(Float price) {
    this.price = price;
    } public String getFeeUnit() {
    return this.feeUnit;
    } public void setFeeUnit(String feeUnit) {
    this.feeUnit = feeUnit;
    } public String getFeeExplain() {
    return this.feeExplain;
    } public void setFeeExplain(String feeExplain) {
    this.feeExplain = feeExplain;
    } public String getServiceExplain() {
    return this.serviceExplain;
    } public void setServiceExplain(String serviceExplain) {
    this.serviceExplain = serviceExplain;
    } public Integer getRecommend() {
    return this.recommend;
    } public void setRecommend(Integer recommend) {
    this.recommend = recommend;
    } public Integer getLack() {
    return this.lack;
    } public void setLack(Integer lack) {
    this.lack = lack;
    } public Integer getDeleted() {
    return this.deleted;
    } public void setDeleted(Integer deleted) {
    this.deleted = deleted;
    } public Integer getServiceUserId() {
    return this.serviceUserId;
    } public void setServiceUserId(Integer serviceUserId) {
    this.serviceUserId = serviceUserId;
    } public Integer getZixun() {
    return this.zixun;
    } public void setZixun(Integer zixun) {
    this.zixun = zixun;
    } public Integer getHot() {
    return this.hot;
    } public void setHot(Integer hot) {
    this.hot = hot;
    }}
    Identifiable
    /*
     * Copyright 2004-2006 the original author or authors.
     * 
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     * 
     *      http://www.apache.org/licenses/LICENSE-2.0
     * 
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */package beans;/**
     * 
     * @author kimchy
     */
    public interface Identifiable {    Long getId();
    }检索方法
    public Object findSean(Object exp, Object classType) {
    ArrayList<ServiceUserBean> list_bean = null;
    // TODO Auto-generated method stub
    int pagesNow = 0;
    try {
    pagesNow = Integer.parseInt(classType.toString()) - 1;
    } catch (Exception e) {
    pagesNow = 0;
    }
    if (pagesNow < 0)
    pagesNow = 0;
    try {
    comConfig = new CompassConfiguration().configure(); comConfig.addClass(ServiceUserBean.class); com = comConfig.buildCompass(); if (!tools.StringUtils.isNotEmpty(exp.toString())) {
    exp = "关键词不合法";
    } CompassSearchHelper searchHelper = new CompassSearchHelper(com, 10);
    CompassSearchResults results;
    results = searchHelper.search(new CompassSearchCommand(exp
    .toString(), pagesNow));
    System.out.println("test1"); // CompassHits hits = session.queryBuilder() // .queryString(exp+"*") // .toQuery() // .hits(); System.out.println("检索时间:" + results.getSearchTime() + "/ms");
    System.out.println("检索结果:" + results.getTotalHits());
    System.out.println("检索页数:" + results.getPages().length);
    beans.PagesBean bean = new PagesBean();
    bean.setCountPages(results.getPages().length);
    bean.setCountRecord(results.getTotalHits()); for (int i = 0; i < results.getPages().length; i++) {
    if (results.getPages()[i].isSelected())
    bean.setPageNows(i + 1);
    }
    if (bean.getPageNows() - 1 <= 0) {
    bean.setPageUp(1);
    } else {
    bean.setPageUp(bean.getPageNows() - 1);
    }
    if (bean.getPageNows() + 1 > bean.getCountPages()) {
    bean.setPageDown(bean.getCountPages());
    } else {
    bean.setPageDown(bean.getPageNows() + 1);
    }
    setPageBean(bean);
    list_bean = new ArrayList<ServiceUserBean>(); for (int i = 0; i < results.getHits().length; i++) { list_bean.add((ServiceUserBean) results.getHits()[i].getData()); }
    } catch (Exception e) {
    System.out.println(e.toString());
    }
    return list_bean; }
    错误信息如下:
    org.compass.core.mapping.MappingException: Failed to resolve ref-alias [serviceProjectBean] for [serviceProjectBeans] in alias [serviceUserBean]
      

  3.   

    各位,我第一次发帖发的这么认真,给点鼓励 一定要解决啊,不然我对csdn 要丧失信心了