Hi Matt, In Appfuse 2.0 struts, related to Hibernate i have one problem with the relation. i am unable to explain my problem because of this reason i copy the program for your reference.
POJO Class: public class Employee extends BaseObject implements Serializable { @Id @GeneratedValue (strategy=GenerationType.AUTO) @Column (name="EmployeeID") private Long id; @Column (name="FirstName",length=50,nullable=false) private String firstName; @Column (name="LastName",length=50,nullable=false) private String lastName; @Column (name="Email",length=255,nullable=false) private String email; @Column (name="PrimaryContactNumber",length=50,nullable=false) private String primaryContact; @Column (name="SecondaryContactNumber",length=50) private String secondaryContact; @ManyToOne (targetEntity=Branch.class) @JoinColumn (name="BranchID") private Branch branch; @ManyToOne (targetEntity=Designation.class) @JoinColumn (name="DesignationID") private Designation designation; @ManyToOne (targetEntity=Employee.class,optional=true) @JoinColumn(name="ManagerID",referencedColumnName="EmployeeID") private Employee manager; @Column (name="EmployeePriority",nullable=false) private Long priority; @Column (name="Active") private boolean active; ........... ........... ........... } EmployeeForm.jsp <s:form id="employeeForm" action="saveEmployee" method="post" validate="true"> <li style="display: none"> <s:hidden key="employee.id"/> <%--<s:hidden key="employee.manager.id"/>--%> </li> <s:checkbox key="employee.active" cssClass="checkbox" required="true" labelposition="left"/> <s:textfield key="employee.firstName" required="true" cssClass="text medium" maxlength="50"/> <s:textfield key="employee.lastName" required="true" cssClass="text medium" maxlength="50"/> <s:textfield key="employee.primaryContact" required="true" cssClass="text medium" maxlength="50"/> <s:textfield key="employee.secondaryContact" cssClass="text medium" maxlength="50"/> <s:textfield key="employee.email" required="true" cssClass="text large" maxlength="255"/> <s:select key="employee.branch.id" list="branches" listKey="id" listValue="name" required="true" cssClass="select medium"/> <s:select key="employee.designation.id" list="designations" listKey="id" listValue="description" required="true" cssClass="select medium"/> <s:select key="employee.manager.id" list="managers" listKey="id" listValue="firstName" cssClass="select medium"/> <s:textfield key="employee.priority" required="true" cssClass="text small" maxlength="6"/> <li class="buttonBar bottom"> <s:submit cssClass="button" method="save" key="button.save" theme="simple"/> <c:if test="${not empty employee.id}"> <s:submit cssClass="button" method="delete" key="button.delete" onclick="return confirmDelete('Employee')" theme="simple"/> </c:if> <s:submit cssClass="button" method="cancel" key="button.cancel" theme="simple"/> </li> </s:form> EmployeeAction.java public String save() { if (cancel != null) { return "cancel"; } if (delete != null) { return delete(); } boolean isNew = (employee.getId() == null); try { log.debug("Manager === "+employee.getManager()); String managerId = getRequest().getParameter("employee.manager.id"); log.debug("id === " + managerId); employeeManager.save(employee); saveMessage(getText(isNew ? "employee.added" : "employee.updated")); return SUCCESS; } catch (Exception e) { saveErrors (getText("employee.error")); return INPUT; } } Employee-Validation.xml <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> <validators> <field name="employee.firstName"> <field-validator type="requiredstring"> <message key="errors.required"/> </field-validator> </field> <field name="employee.lastName"> <field-validator type="requiredstring"> <message key="errors.required"/> </field-validator> </field> <field name="employee.primaryContact"> <field-validator type="requiredstring"> <message key="errors.required"/> </field-validator> </field> <field name="employee.email"> <field-validator type="requiredstring"> <message key="errors.required"/> </field-validator> <field-validator type="email"> <message key="errors.email"/> </field-validator> </field> <field name="employee.branch.id"> <field-validator type="required"> <message key="errors.required"/> </field-validator> </field> <field name="employee.designation.id"> <field-validator type="required"> <message key="errors.required"/> </field-validator> </field> <field name="employee.priority"> <field-validator type="required"> <message key="errors.required"/> </field-validator> </field> </validators> If i am trying to create a new record, it doesn't save the records and it throws an nullpointerException at the isNew and the Error Log is: Error Log: http://appfuse.547863.n4.nabble.com/file/n2237105/ErrorLog_create.txt ErrorLog_create.txt When i'm trying to update then it doesn't throws any exception but it is not updating the manager column with the selection from dropdown menu. it gives an error like ERROR [btpool0-1] InstantiatingNullHandler.nullPropertyValue(110) | Could not create and/or set value back on to object org.springframework.beans.TypeMismatchException: Failed to convert property value of type [$Proxy27] to required type [com.trident.auto.model.Employee] for property 'manager'; nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [$Proxy27] to required type [com.trident.auto.model.Employee] for property 'manager': no matching editors or conversion strategy found please suggest me to solve this problem, or suggest me ant other ways to solve this problem. Thanks in Advance .... ----- Regards, Sudhakargupta Somu. -- View this message in context: http://appfuse.547863.n4.nabble.com/Hibernate-ManyToOne-Problem-tp2237105p2237105.html Sent from the AppFuse - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@appfuse.dev.java.net For additional commands, e-mail: users-h...@appfuse.dev.java.net