I am using Hibernate 3.3 with annotations. I have an embedded class (component) that I embed in two different classes. In one of the class, everything is working fine, but in second class I get
Caused by: java.lang.IllegalArgumentException: argument type mismatch [java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[java] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [java] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[java] at java.lang.reflect.Method.invoke(Method.java:585)
[java] at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:42) [java] ... 53 more
[java] 2007-08-15 17:16:05,650 [BasicPropertyAccessor] IllegalArgumentException in class: com.amazon.otb.model. PlanningLevelData, setter method of property: category
[java] 2007-08-15 17:16:05,650 [BasicPropertyAccessor] expected type: java.lang.String, actual value: java. lang.Boolean
Here is how my embedded class look like
@Embeddable
public class PlanningLevelData implements Serializable {
@Column(name = "CATEGORY_GROUP", length=96)
public String getCategoryGroup() {
return this.categoryGroup;
}
@Column(name = "CATEGORY", length=96)
public String getCategory() {
return this.category;
}
....
It is working in DataPoint where I have defined it as
@Embedded
public PlanningLevelData getPlanningLevel() {
return this.planningLevelData;
}
But not working in the second class. Here is SQL generated by Hibernate:
[java] Hibernate: select planningle0_.id as id2_, planningle0_.CREATED_BY as CREATED2_2_, planningle0_. CREATION_DATE as CREATION3_2_, planningle0_.LAST_UPDATED_BY as LAST4_2_, planningle0_.LAST_UPDATED_DATE as LAST5_2_, planningle0_.ACTIVE as ACTIVE2_, planningle0_.ID as ID2_, planningle0_.NAME as NAME2_, planningle0_. PARENT_ID as PARENT16_2_, planningle0_.CATEGORY as CATEGORY2_, planningle0_.CATEGORY_GROUP as CATEGORY9_2_, planningle0_.ORG as ORG2_, planningle0_.GL_PRODUCT_GROUP as GL11_2_, planningle0_.SUBCATEGORY as SUBCATE12_2_, planningle0_.SUBCATEGORY_GROUP as SUBCATE13_2_, planningle0_.VENDOR as VENDOR2_, planningle0_.VENDOR_GROUP as VENDOR15_2_ from OTB_PLANNING_LEVELS planningle0_ where planningle0_.ACTIVE=?
The organization is defined as String, so I am not sure where it's finding Boolean.
Another unrelated problem is that when I add setFirstResult and setMaxResults, the SQL generates id column twice and I get column ambiguity problem.
Any ideas?
Thanks.
|