Я обновляю приложение «Древнее Spring 3» до Spring 6. Я нашел ряд проблем с тем же сообщением, но в основном они на самом деле используют аннотации. Тот, который не является: java/hibernate Исключение: ожидание отображения idclass не имеет ответа.
mappings/appearance.hbm.xml
mappings/appearMessage.hbm.xml
...lots of other mapping files
hibernate.dialect=org.hibernate.dialect.InformixDialect
hibernate.show.sql=true
hibernate.connection.release_mode=after_statement
< /code>
И я получаю ошибку, когда запускаю свое приложение: < /p>
...long stack trace
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jxxSessionFactory' defined in ServletContext resource [/WEB-INF/conf/spring/dao.xml]: expecting IdClass mapping
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1812) ~[spring-beans-6.2.5.jar:6.2.5]
...long stack trace
< /code>
К сожалению, не указывает, какое отображение. Вот классы: < /p>
public class AppearanceKey implements Serializable{
private static final long serialVersionUID = 1L;
/* (non-Javadoc)
* @see java.lang.Object#equals(java.lang.Object)
*/
@Override
public boolean equals(Object obj) {
AppearanceKey aKey=null;
if (obj instanceof AppearanceKey) {
aKey = (AppearanceKey) obj;
}
else{
return false;
}
boolean test=aKey.getParticipantNumber().equals(getParticipantNumber());
if(test){
return aKey.getDateAttended().equals(getDateAttended());
}
else{
return false;
}
}
/* (non-Javadoc)
* @see java.lang.Object#hashCode()
*/
@Override
public int hashCode() {
return toString().hashCode();
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
StringBuilder sb=new StringBuilder(getParticipantNumber());
sb.append(":");
sb.append(DateAttended.get(Calendar.MONTH+1));
sb.append("/");
sb.append(DateAttended.get(Calendar.DATE));
sb.append("/");
sb.append(DateAttended.get(Calendar.YEAR));
return sb.toString();
}
Calendar DateAttended;
String ParticipantNumber;
/**
* @return the dateAttended
*/
public Calendar getDateAttended() {
return DateAttended;
}
/**
* @param dateAttended the dateAttended to set
*/
public void setDateAttended(Calendar dateAttended) {
DateAttended = dateAttended;
}
/**
* @return the participantNumber
*/
public String getParticipantNumber() {
return ParticipantNumber;
}
/**
* @param participantNumber the participantNumber to set
*/
public void setParticipantNumber(String participantNumber) {
ParticipantNumber = participantNumber;
}
}
< /code>
Если мне придется переключиться на отображение аннотаций, я буду, но пытаюсь избежать, если возможно. < /p>
public class Appearance {
Courthouse CourtLocation;
Calendar DateAttended;
String ParticipantNumber;
Float PaymentAmount;
/**
* @return the dateAttended
*/
public Calendar getDateAttended() {
return DateAttended;
}
/**
* @param dateAttended the dateAttended to set
*/
public void setDateAttended(Calendar dateAttended) {
DateAttended = dateAttended;
}
/**
* @return the participantNumber
*/
public String getParticipantNumber() {
return ParticipantNumber;
}
/**
* @param participantNumber the participantNumber to set
*/
public void setParticipantNumber(String participantNumber) {
ParticipantNumber = participantNumber;
}
/**
* @return the paymentAmount
*/
public Float getPaymentAmount() {
if(PaymentAmount==null){
PaymentAmount=0.0f;
}
return PaymentAmount;
}
/**
* @param paymentAmount the paymentAmount to set
*/
public void setPaymentAmount(Float paymentAmount) {
PaymentAmount = paymentAmount;
}
/**
* @return the courtLocation
*/
public Courthouse getCourtLocation() {
return CourtLocation;
}
/**
* @param courtLocation the courtLocation to set
*/
public void setCourtLocation(Courthouse courtLocation) {
CourtLocation = courtLocation;
}
}
Подробнее здесь: https://stackoverflow.com/questions/795 ... ss-mapping