2017-02-02 1 views
0

abrufen Ich bin Spring Data, JPA und nicht in der Lage, die Daten über manyToOne Beziehung abrufen.Nicht in der Lage, die Daten mit manyToOne mithilfe von Spring Data JPA

Ich habe 2 Einheiten Employee, EmployeeTransferRequest.

@Entity 
@Table(name = "employee_detail") 
public class EmployeeDetail{ 

private Employee employee; 

private Long empId; 

@ManyToOne(fetch = FetchType.LAZY, optional = false) 
@JoinColumn(name = "emp_id", insertable = false, nullable = false,updatable = false) 
    public Employee getEmployee() { 
     return _student; 
    } 

    public void setEmployee(Employee employee) { 
     this.employee = employee; 
    } 


    @Column(name = "emp_id", updatable = false) 
    public Long getEmpId() { 
     return empId; 
    } 


    public void setEmpId(Long empId) { 
     this.empId = empId; 
    } 

    } 
    @Entity 
    @Table(name = "employee") 
    class Employee 
    { 
     @Override 
     @Id 
     @GeneratedValue(strategy = GenerationType.IDENTITY) 
     @Column(name = " emp_id") 
     public Long getEmpId() { 
      return _id; 
      // Other Fields of Employee class .. 
     } 
    } 

public interface EmployeeTransferRequestRepository extends JpaRepository<EmployeeTransferRequest, UUID>, QueryDslPredicateExecutor<EmployeeTransferRequest> 
    { 
     default EmployeeTransferRequest findOneUUID transferRequestId) { 
      return findOne(employeeTransferRequest.id.eq(transferRequestId); 
     } 
    } 

habe ich EmployeeTransferRequest von Employee Entität Seite nicht zuordnen. Es ist nur uni-directional von EmployeeTransferRequest nur.

Als ich findOne nenne, kann ich alle Daten von EmployeeTransferRequest zu bekommen, aber nicht Employee Informationen bekommen, bekommen null.

Könnten Sie bitte helfen.

+0

Haben Sie versucht, FetchType von LAZY in EAGER zu ändern? –

+0

@ Melli-182, ja, ich habe versucht, LAZY zu EAGER zu ändern, aber es hat nicht funktioniert. – Venky

+1

posten Sie bitte den tatsächlichen Code. Dieser Code kompiliert nicht: Hauptklasse, fehlende Parens. Sie kommentieren die Getter, also sollte Hibernate die Setter verwenden, um Werte einzufügen, aber da es keine gibt, kann dies nicht funktionieren. Aber dann ... das ist nicht der Code, den Sie tatsächlich verwenden ... –

Antwort

0

Dies liegt daran, dass Sie das Mapping als insertable=false angegeben haben. Dies bedeutet, dass beim Erstellen der Übertragungsanforderung die Beziehung nicht beibehalten wird. Dies führt bei der Abfrage der Anforderung in der Zukunft zu null.

+0

Ich benutze nicht Mitarbeiter-Objekt, um die Mitarbeiter-Info persistent zu bleiben, für die Persistenz Ich bin empId Eigentum, ich habe den Code aktualisiert, bitte überprüfen und beraten. – Venky

Verwandte Themen