Hello,
in my project following error is raised. I don't know why Set is
expected because everywhere List is declared. I'm using 1.5. Any idea?
TNX
STACK TRACE:
java.lang.ClassCastException: java.util.ArrayList cannot be cast to
java.util.Set
at org.hibernate.type.SetType.wrap(SetType.java:39)
at
org.hibernate.event.def.WrapVisitor.processArrayOrNewCollection(WrapVisitor.java:84)
at
org.hibernate.event.def.WrapVisitor.processCollection(WrapVisitor.java:51)
at
org.hibernate.event.def.AbstractVisitor.processValue(AbstractVisitor.java:101)
at org.hibernate.event.def.WrapVisitor.processValue(WrapVisitor.java:98)
at
org.hibernate.event.def.AbstractVisitor.processEntityPropertyValues(AbstractVisitor.java:55)
at
org.hibernate.event.def.DefaultFlushEntityEventListener.wrapCollections(DefaultFlushEntityEventListener.java:192)
at
org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:125)
at
org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:196)
at
org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:76)
at
org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:26)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at
org.springframework.orm.hibernate3.HibernateAccessor.flushIfNecessary(HibernateAccessor.java:390)
at
org.springframework.orm.hibernate3.HibernateInterceptor.invoke(HibernateInterceptor.java:105)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at
org.springframework.aop.framework.adapter.ThrowsAdviceInterceptor.invoke(ThrowsAdviceInterceptor.java:126)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at
org.fornax.cartridges.sculptor.framework.errorhandling.ServiceContextStoreAdvice.invoke(ServiceContextStoreAdvice.java:39)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at
org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy9.save(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at sk.f4s.pic.web.server.ScServlet.handleRequest(ScServlet.java:348)
DESIGN:
Entity OrgUnit {
scaffold
String name key length="30";
- @OrgUnitKind orgUnitKind nullable;
- @Employee boss nullable;
- List<@Employee> employee;
- @OrgUnit parent nullable;
}
HBM.XML:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping
DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="sk.f4s.pic.org.domain.OrgUnit" table="ORGUNIT">
<id name="id">
<generator class="native"/>
</id>
<version name="version" type="java.lang.Long"/>
<!-- <natural-id> There is a BUG HHH-1569 that prevents us from
using <natural-id> -->
<property name="name" length="30" not-null="true" unique="true"/>
<!-- </natural-id> -->
<property name="createdDate" type="timestamp"/>
<property name="createdBy" length="50"/>
<property name="lastUpdated" type="timestamp"/>
<property name="lastUpdatedBy" length="50"/>
<many-to-one name="orgUnitKind" column="ORGUNITKIND"
class="sk.f4s.pic.org.domain.OrgUnitKind" cascade="all"/>
<many-to-one name="boss" column="BOSS"
class="sk.f4s.pic.org.domain.Employee" cascade="all"/>
<many-to-one name="parent" column="PARENT"
class="sk.f4s.pic.org.domain.OrgUnit" cascade="all"/>
<set name="employee" table="EMPLOYEE_ORGUNIT" cascade="all">
<key column="ORGUNIT"/>
<many-to-many column="EMPLOYEE" class="sk.f4s.pic.org.domain.Employee"/>
</set>
</class>
</hibernate-mapping>
BASE:
public abstract class OrgUnitBase extends AbstractDomainObject
implements Auditable {
private Long id;
private String name;
private Date createdDate;
private String createdBy;
private Date lastUpdated;
private String lastUpdatedBy;
private Long version;
private OrgUnitKind orgUnitKind;
private Employee boss;
private OrgUnit parent;
private List<Employee> employee = new ArrayList<Employee>();
protected OrgUnitBase() {
}
public OrgUnitBase(@Name("name")
String name) {
super();
Validate.notNull(name);
this.name = name;
}
public Long getId() {
return id;
}
/**
* The id is not intended to be changed or assigned manually, but
* for test purpose it is allowed to assign the id.
*/
protected void setId(Long id) {
if ((this.id != null) && !this.id.equals(id)) {
throw new IllegalArgumentException(
"Not allowed to change the id property.");
}
this.id = id;
}
public String getName() {
return name;
}
@SuppressWarnings("unused")
private void setName(String name) {
if ((this.name != null) && !this.name.equals(name)) {
throw new IllegalArgumentException(
"Not allowed to change the name property.");
}
this.name = name;
}
public Date getCreatedDate() {
return createdDate;
}
public void setCreatedDate(Date createdDate) {
this.createdDate = createdDate;
}
public String getCreatedBy() {
return createdBy;
}
public void setCreatedBy(String createdBy) {
this.createdBy = createdBy;
}
public Date getLastUpdated() {
return lastUpdated;
}
public void setLastUpdated(Date lastUpdated) {
this.lastUpdated = lastUpdated;
}
public String getLastUpdatedBy() {
return lastUpdatedBy;
}
public void setLastUpdatedBy(String lastUpdatedBy) {
this.lastUpdatedBy = lastUpdatedBy;
}
public Long getVersion() {
return version;
}
public void setVersion(Long version) {
this.version = version;
}
public OrgUnitKind getOrgUnitKind() {
return orgUnitKind;
}
public void setOrgUnitKind(OrgUnitKind orgUnitKind) {
this.orgUnitKind = orgUnitKind;
}
public Employee getBoss() {
return boss;
}
public void setBoss(Employee boss) {
this.boss = boss;
}
public OrgUnit getParent() {
return parent;
}
public void setParent(OrgUnit parent) {
this.parent = parent;
}
public List<Employee> getEmployee() {
return employee;
}
@SuppressWarnings("unused")
private void setEmployee(List<Employee> employee) {
this.employee = employee;
}
/**
* This method is used by equals and hashCode.
* @return {...@link #getName}
*/
public Object getKey() {
return getName();
}
}
------------------------------------------------------------------------------
_______________________________________________
Fornax-developer mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/fornax-developer