Я создаю небольшой код, в котором я хочу установить sh отношения один-ко-многим между учеником и ноутбуками, использующими Hibernate. Вот мой код
Студент. java
package com.cybersquare.hibernate.hibernate_demo;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import com.mysql.cj.x.protobuf.MysqlxCrud.Collection;
@Entity
public class Student {
@Id
private int rollNo;
private String name;
/* To tell one student has many laptops and mappedBy = "student" gives the responsibility
of mapping to student property in laptop table*/
@OneToMany(mappedBy = "student")
private List<Laptop> laptop = new ArrayList<Laptop>();
public int getRollNo() {
return rollNo;
}
public void setRollNo(int rollNo) {
this.rollNo = rollNo;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<Laptop> getLaptop() {
return laptop;
}
public void setLaptop(List<Laptop> laptop) {
this.laptop = laptop;
}
}
Ноутбук. java
package com.cybersquare.hibernate.hibernate_demo;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
@Entity
public class Laptop {
@Id
private int lid;
private String lname;
@ManyToOne
private Student student;
public int getLid() {
return lid;
}
public void setLid(int lid) {
this.lid = lid;
}
public String getLname() {
return lname;
}
public void setLname(String lname) {
this.lname = lname;
}
public Student getStudent() {
return student;
}
public void setStudent(Student student) {
this.student = student;
}
}
Приложение. java
package com.cybersquare.hibernate.hibernate_demo;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
public class App
{
public static void main( String[] args )
{
Laptop laptop = new Laptop();
Student student = new Student();
laptop.setLid(101);
laptop.setLname("Dell");
student.setRollNo(1);
student.setName("Surya");
student.getLaptop().add(laptop);
//Creating object for configuration class
// And configure method to connect with hibernate configuration file
// Add annotated class is for adding class to be added to DB
Configuration configuration = new Configuration().
configure().
addAnnotatedClass(Alien.class).
addAnnotatedClass(Student.class).
addAnnotatedClass(Laptop.class);
// Building a session factory for given configuration and SessionFactory is interface
SessionFactory sessionFactory = configuration.buildSessionFactory();
// Opening a created session and Session is an interface
Session session = sessionFactory.openSession();
// trasncaction beginning
Transaction transaction = session.beginTransaction();
session.save(student);
session.save(laptop);
transaction.commit();
}
}
Проблема в том, что когда я не использую эту аннотацию @mappedBy, каждое соответствующее значение вставляется в новую таблицу, но после использования аннотации становится пустым значение вставляется в таблицу ноутбука вместо номера студенческого рулона. Пожалуйста, найдите скриншот ниже.
Пожалуйста, помогите мне с этим. Заранее спасибо