2013-07-06 6 views
1

Helloo пожалуйста бегает тест блока для моих ваучеров class.i получает эту ошибку ..Модульного тестирования единицы применения

Caused by: org.hibernate.AnnotationException: mappedBy reference an unknown target entity property: com.dreamoval.itopup.voucher.model.VoucherType.VoucherCategory in com.dreamoval.itopup.voucher.model.VoucherCategory.voucherTypes 
at org.hibernate.cfg.annotations.CollectionBinder.bindStarToManySecondPass(CollectionBinder.java:708) 
at org.hibernate.cfg.annotations.CollectionBinder$1.secondPass(CollectionBinder.java:668) 
at org.hibernate.cfg.CollectionSecondPass.doSecondPass(CollectionSecondPass.java:66) 
at org.hibernate.cfg.Configuration.originalSecondPassCompile(Configuration.java:1597) 
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1355) 
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1737) 
at org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:94) 
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:905) 

Это класс отрывного листка

@Entity(name = "voucher") 
public class Voucher { 

//declaration of variables with their annotations to map attributes of a voucher 
@Id 
@GeneratedValue(strategy = GenerationType.AUTO) 
@Column(name = "voucher_id") 
private Long voucherId; 

@Column(name = "serial_number") 
private String serialNumber; 

@Column(name = "pin") 
private String pin; 

@ManyToOne 
@JoinColumn(name = "voucher_type_id") 
private VoucherType voucherTypeId; 

@Column(name = "denomination") 
private BigDecimal denomination; 

@Column(name = "session_lock") 
private Integer sessionLock; 

@Column(name = "status") 
private String status; 

@Column(name = "updated_by") 
private String updatedBy; 

@Temporal(javax.persistence.TemporalType.DATE) 
@Column(name = "expiry_date") 
private Date expiryDate; 

@Temporal(javax.persistence.TemporalType.DATE) 
@Column(name = "last_modified") 
private Date dateModified; 

@Temporal(javax.persistence.TemporalType.DATE) 
@Column(name = "date_entered") 
private Date dateEntered; 

@OneToOne(cascade = CascadeType.ALL,mappedBy = "Voucher") 
private PurchaseHistory purchaseHistory; 

/** 
* 
* @return voucherId 
*/ 
public Long getVoucherId() { 
    return voucherId; 
} 
/** 
* 
* @param voucherId the voucherId to be set to 
*/ 
public void setVoucherId(Long voucherId) { 
    this.voucherId = voucherId; 
} 
/** 
* 
* @return serialNumber 
*/ 
public String getSerialNumber() { 
    return serialNumber; 
} 
/** 
* 
* @param serialNumber the serialNumber to be set to 
*/ 
public void setSerialNumber(String serialNumber) { 
    this.serialNumber = serialNumber; 
} 
/** 
* 
* @return denomination 
*/ 
public BigDecimal getDenomination() { 
    return denomination; 
} 
/** 
* 
* @param denomination the denomination to be set to 
*/ 
public void setDenomination(BigDecimal denomination) { 
    this.denomination = denomination; 
} 
/** 
* 
* @return voucherTypeId 
*/ 
public VoucherType getVoucherTypeId() { 
    return voucherTypeId; 
} 
/** 
* 
* @param voucherTypeId the voucherTypeId to be set to 
*/ 
public void setVoucherTypeId(VoucherType voucherTypeId) { 
    this.voucherTypeId = voucherTypeId; 
} 
/** 
* 
* @return dateModified 
*/ 
public Date getDateModified() { 
    return dateModified; 
} 
/** 
* 
* @param dateModified the dateModified to be set to 
*/ 
public void setDateModified(Date dateModified) { 
    this.dateModified = dateModified; 
} 
/** 
* 
* @return dateEntered 
*/ 
public Date getDateEntered() { 
    return dateEntered; 
} 
/** 
* 
* @param dateEntered the dateEntered to be set to 
*/ 
public void setDateEntered(Date dateEntered) { 
    this.dateEntered = dateEntered; 
} 
/** 
* 
* @return expiryDate 
*/ 
public Date getExpiryDate() { 
    return expiryDate; 
} 
/** 
* 
* @param expiryDate the expiryDate to be set to 
*/ 
public void setExpiryDate(Date expiryDate) { 
    this.expiryDate = expiryDate; 
} 
/** 
* 
* @return pin 
*/ 
public String getPin() { 
    return pin; 
} 
/** 
* 
* @param pin the pin to be set to 
*/ 
public void setPin(String pin) { 
    this.pin = pin; 
} 
/** 
* 
* @return status 
*/ 
public String getStatus() { 
    return status; 
} 
/** 
* 
* @param status the status to be set to 
*/ 
public void setStatus(String status) { 
    this.status = status; 
} 
/** 
* 
* @return sessionLock 
*/ 
public Integer getSessionLock() { 
    return sessionLock; 
} 
/** 
* 
* @param sessionLock the sessionLock to be set to 
*/ 
public void setSessionLock(Integer sessionLock) { 
    this.sessionLock = sessionLock; 
} 
/** 
* 
* @return UpdatedBy 
*/ 
public String getUpdatedBy() { 
    return updatedBy; 
} 
/** 
* 
* @param updatedBy the name to be set to 
*/ 
public void setUpdatedBy(String updatedBy) { 
    this.updatedBy = updatedBy; 
} 

} это voucherCategory Class

@Entity 
@Table(name = "voucher_category") 
public class VoucherCategory { 

//declaration of variables for attributes of the voucherCategory. 
@Id 
@Column(name = "category_id") 
private Long categoryId; 

@Column(name = "description") 
private String categoryDescription; 

@Column(name = "name") 
private String name; 

@Column(name = "update_by") 
private String updatedBy; 

@Temporal(javax.persistence.TemporalType.DATE) 
@Column(name = "last_modified") 
private Date dateModified; 


@OneToMany(cascade = CascadeType.ALL,orphanRemoval = true,mappedBy = "VoucherCategory") 
private final List<VoucherType> voucherTypes = new ArrayList<VoucherType>(); 

/** 
* @return the categoryId 
*/ 
public Long getCategoryId() { 
    return categoryId; 
} 
/** 
* @param categoryId the categoryId to set 
*/ 
public void setCategoryId(Long categoryId) { 
    this.categoryId = categoryId; 
} 
/** 
* @return the categoryDescription 
*/ 
public String getCategoryDescription() { 
    return categoryDescription; 
} 
/** 
* @param categoryDescription the CategoryDescription to set 
*/ 
public void setCategoryDescription(String categoryDescription) { 
    this.categoryDescription = categoryDescription; 
} 
/** 
* @return the dateModified 
*/ 
public Date getDateModified() { 
    return dateModified; 
} 
/** 
* @param dateModified the DateModified to set 
*/ 
public void setDateModified(Date dateModified) { 
    this.dateModified = dateModified; 
} 
/** 
* @return the upadatedBy 
*/ 
public String getUpddateBy() { 
    return updatedBy; 
} 
/** 
* @param updatedBy the UpdatedBy to set 
*/ 
public void setUpddateBy(String updatedBy) { 
    this.updatedBy = updatedBy; 
} 

/** 
* @return the name 
*/ 
public String getName() { 
    return name; 
} 
/** 
* @param name the name to set 
*/ 
public void setName(String name) { 
    this.name = name; 
} 

этого voucherType класс

@Entity 

@Table (имя = "voucher_type") общественного класса VoucherType {

//declaration of variables for attributes of the VoucherType,specifying the various fields in the table 

@Id 
@Column(name = "voucher_type_id") 
private long typeID; 

@ManyToOne 
@JoinColumn(name = "category_id") 
private VoucherCategory voucherCategory; 

@Column(name = "last_modified") 
@Temporal(javax.persistence.TemporalType.DATE) 
private Date lastModified; 

@Column(name = "picture") 
private String voucherImageUrl; 

@Column(name = "updated_by") 
private String updatedBy; 

@OneToMany(cascade = CascadeType.ALL,orphanRemoval = true,mappedBy = "VoucherType") 
private final List<Voucher> vouchers = new ArrayList<Voucher>(); 

/** 
* 
* @return the typeID 
*/ 
public long getTypeID() { 
    return typeID; 
} 
/** 
* 
* @param typeID the typeID to set 
*/ 
public void setTypeID(long typeID) { 
    this.typeID = typeID; 
} 
/** 
* 
* @return the voucherImageUrl 
*/ 
public String getVoucherImageUrl() { 
    return voucherImageUrl; 
} 
/** 
* 
* @param voucherImageUrl the voucherImageUrl to set 
*/ 
public void setVoucherImageUrl(String voucherImageUrl) { 
    this.voucherImageUrl = voucherImageUrl; 
} 
/** 
* 
* @return the lastModified 
*/ 
public Date getLastModified() { 
    return lastModified; 
} 
/** 
* 
* @param lastModified the lastModified to set 
*/ 
public void setLastModified(Date lastModified) { 
    this.lastModified = lastModified; 
} 
/** 
* 
* @return the updatedBy 
*/ 
public String getUpdatedBy() { 
    return updatedBy; 
} 
/** 
* 
* @param updatedBy the updatedBy to set 
*/ 
public void setUpdatedBy(String updatedBy) { 
    this.updatedBy = updatedBy; 
} 
} 


} 

это го содержание моего тест-дб-config.xml файле

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:jee="http://www.springframework.org/schema/jee" 
    xmlns:lang="http://www.springframework.org/schema/lang" 
    xmlns:util="http://www.springframework.org/schema/util" 
    xmlns:p="http://www.springframework.org/schema/p" 
    xmlns:jpa="http://www.springframework.org/schema/data/jpa" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-3.1.xsd 

http://www.springframework.org/schema/jee 
http://www.springframework.org/schema/jee/spring-jee-3.1.xsd      

    http://www.springframework.org/schema/lang 
    http://www.springframework.org/schema/lang/spring-lang-3.1.xsd 

http://www.springframework.org/schema/util 
     http://www.springframework.org/schema/util/spring-util-3.1.xsd 

http://www.springframework.org/schema/context 
      http://www.springframework.org/schema/context/spring-context-3.1.xsd 

http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema 

/data/jpa/spring-jpa-1.0.xsd 


http://www.springframework.org/schema/tx"> 

<context:component-scan base-package="com.dreamoval.itopup.voucher" /> 
<bean id="propertyConfigurer" 
     class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="locations"> 
     <list> 

      <value>classpath:/META-INF/voucher.properties</value> 
     </list> 
    </property> 
</bean>  

<bean id="dataSource"        class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
    <property name="driverClassName" value="${jdbc.driverClassName}" /> 
    <property name="url" value="${jdbc.url}" /> 
    <property name="username" value="${jdbc.username}"/> 
    <property name="password" value="${jdbc.password}" /> 
</bean> 
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> 
    <property name="entityManagerFactory" ref="entityManagerFactory"/> 
</bean> 

<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 
    <property name="dataSource" ref="dataSource" /> 
    <property name="packagesToScan" value="com.dreamoval.itopup.voucher.model"/> 
    <property name="persistenceUnitName" value="defaultPersistenceUnit" /> 
    <property name="jpaProperties"> 
     <props> 
      <prop key="hibernate.dialect">${hibernate.dialect}</prop> 
      <prop key="hibernate.show_sql">${hibernate.show_sql}</prop> 
      <prop key="hibernate.format_sql">${hibernate.format_sql}</prop> 
      <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop> 
     </props> 
    </property> 
</bean> 
<bean id="jpdDialect" class="org.springframework.orm.jpa.vendor.HibernateJpaDialect"/> 
<jpa:repositories base-package="com.dreamoval.itopup.voucher.repository"/> 
</beans> 

банку анионной помогите мне пожалуйста ... жду

ответ

0

Значение атрибута mappedBy должно быть именем поля , с другой стороны ассоциации, которая содержит отображение этой двунаправленной ассоциации.

Таким образом, вместо

@OneToMany(cascade = CascadeType.ALL,orphanRemoval = true,mappedBy = "VoucherType") 
private final List<Voucher> vouchers = new ArrayList<Voucher>(); 

вы должны иметь

@OneToMany(cascade = CascadeType.ALL,orphanRemoval = true,mappedBy = "voucherTypeId") 
private final List<Voucher> vouchers = new ArrayList<Voucher>(); 

Вместо

OneToMany(cascade = CascadeType.ALL,orphanRemoval = true,mappedBy = "VoucherCategory") 
private final List<VoucherType> voucherTypes = new ArrayList<VoucherType>(); 

вы должны иметь

OneToMany(cascade = CascadeType.ALL,orphanRemoval = true,mappedBy = "voucherCategory") 
private final List<VoucherType> voucherTypes = new ArrayList<VoucherType>(); 

И вместо

@OneToOne(cascade = CascadeType.ALL,mappedBy = "Voucher") 
private PurchaseHistory purchaseHistory; 

вы должны, вероятно,

@OneToOne(cascade = CascadeType.ALL,mappedBy = "voucher") 
private PurchaseHistory purchaseHistory; 
+0

Хорошо спасибо ..will исправить это дать и ответ –

Смежные вопросы