2014-12-14 3 views
0

Я не могу добавить записи в таблицу WorkOrder. Он добавляет записи в таблицу компаний и таблицу Handyman. Наверное, что-то не так с моими аннотациями. Есть ли ошибки?
У меня есть 3 стола.
1 стол Компания, содержит названия компаний, адреса, номера телефонов и т.д.
2 разнорабочий стол, разнорабочий имя, адрес, ежечасно скорости и т.д.
3 WorkOrders, рабочий номер заказа, адрес стройплощадки,Hibernate annotations one-to-many

Столы компании и WorkOrders связаны между собой через внешний ключ в одном-ко-многим ассоциации Таблицы и Разнорабочий WorkOrders связаны между собой через внешний ключ в один-ко-многим ассоциации

WorkOrder.java

Company.java

@Entity 
@Table(name="Companys_list", schema="handyman") 
public class Company implements Serializable { 

@OneToMany(cascade=CascadeType.ALL) 
@JoinColumn(name="Companys_list_id") 
private Set<WorkOrder> workOrders; 

Handyman.java

@OneToMany(cascade=CascadeType.ALL) 
@JoinColumn(name="Handymans_list_id") 
private Set<WorkOrder> workOrders; 

Вот мой JSP файл:

<s:form action="saveWorkOrder"> 

     <s:actionerror/> 
     <s:textfield name="workOrder.workOrder"  label="Work order number" /> 
     <s:textfield name="workOrder.address"  label="Adress/Location" /> 
     <s:textfield name="workOrder.email"   label="Email" /> 
     <s:textfield name="workOrder.comment"  label="Comment" /> 
     <s:textfield name="workOrder.dateReceived" label="Date receved" /> 
     <s:textfield name="workOrder.price"   label="Price" /> 
     <s:textfield name="company.companyName"  label="Company name" /> 
     <s:textfield name="handyman.handymanName"  label="Handyman name" /> 
     <s:submit value="Register" /> 

    </s:form> 

WorkOrderManagment.java

public String saveWorkOrder(WorkOrder workOrder) throws Exception 
{ 

    System.out.println("Saving work order..."); 
    WorkOrderDaoHibernate dao = new WorkOrderDaoHibernate(); 
    workOrder = dao.saveWorkOrder(workOrder); 
    return SUCCESS; 

} 

WorkOrderDa oHibernate.java

public WorkOrder saveWorkOrder(WorkOrder workOrder) 
{ 
    SessionFactory sf = HibernateUtil.getSessionFactory(); 
    Session session = sf.openSession(); 
    Transaction trans = session.beginTransaction(); 
    Integer id = (Integer) session.save(workOrder); 
    trans.commit(); 
    workOrder.setId(id); 
    session.close(); 
    return workOrder; 

} 

ответ

0

Поскольку компания и разнорабочий POJOs определить один ко многим отношений с наряда, а также имеет каскад набор для всех, лучшим решением было бы: 1. Создайте объект компании, установленные значения и сбор объектов рабочего порядка 2. Создайте объект мастера, задайте значения и собирайте объекты рабочего порядка 3. Откройте сеанс и сохраните 1 и 2 в одной партии.