Как установить значение для внешнего ключа - PullRequest
0 голосов
/ 12 февраля 2019

Я не могу установить значение deptID, которое является внешним ключом. Я пробовал много способов, но он не работает.

Я получаю значения из формы HTML.

единицы таблицы сопоставления

public BigDecimal getUnitId() {
    return this.unitId;
}

public void setUnitId(BigDecimal unitId) {
    this.unitId = unitId;
}

public Depts getDepts() { //deptID column - FK
    return this.depts;
}

public void setDepts(Depts depts) {
    this.depts = depts;
}
 

мой код

<%
    SessionFactory sf=  new Configuration().configure().buildSessionFactory();
    Session s= sf.openSession();
    Transaction t= s.beginTransaction();
    String unitID= request.getParameter("unitID");
    String deptID= request.getParameter("deptID");
    String unitName= request.getParameter("unitName");
    Units r= new Units(); //this code to set deptID
    Depts y= new Depts();
    r.setUnitId(new BigDecimal(unitID));
    //r.setDepts(y.setDeptId(new BigDecimal(deptID)));//here is my problem
    y.setDeptId(new BigDecimal(deptID));
    r.setUnitName(unitName);
    s.save(r);
    t.commit();
    out.println("done enserting");
%>

1 Ответ

0 голосов
/ 12 февраля 2019

Я могу заподозрить ошибку, посмотрев на ваш код, который вы пытаетесь сохранить value, который вы получаете со своей html-страницы, вместо сохранения object вашего Department (или имя вашего класса, у которого есть первичный ключ deptID).

Чтобы сохранить deptID вместе с вашей записью: - сначала вам нужно получить объект этого класса.Примерно так: -

Units r = new Units(); 

YourDepartmentClass d = getDeparmentRecord(id) //get the  `YourDepartmentClass` class object on the basis of the id you're receiving 

r.setDepId(d);  //set/associate YourDepartmentClass object in your Unit's object

//save the record 
...