2016-10-04 3 views
1

hey everyone Ich habe 2 Klassenin vielen zu einer Beziehung Einfügen

Admins.java

package com.spark.entites; 

import javax.persistence.CascadeType; 
import javax.persistence.Entity; 
import javax.persistence.FetchType; 
import javax.persistence.GeneratedValue; 
import javax.persistence.GenerationType; 
import javax.persistence.Id; 
import javax.persistence.JoinColumn; 
import javax.persistence.ManyToOne; 


import com.fasterxml.jackson.annotation.JsonView; 
import com.spark.View; 

@Entity 
public class Admins { 

@Id 
@GeneratedValue(strategy = GenerationType.AUTO) 
@JsonView(View.all.class) 
private int idu; 
@JsonView(View.all.class) 
private String logins; 
@JsonView(View.all.class) 
private String password; 
@JsonView(View.all.class) 
@ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.MERGE) 
@JoinColumn(name = "idr") 
private Role role; 

public int getIdu() { 
    return idu; 
} 

public void setIdu(int idu) { 
    this.idu = idu; 
} 

public String getLogins() { 
    return logins; 
} 

public void setLogins(String logins) { 
    this.logins = logins; 
} 

public String getPassword() { 
    return password; 
} 

public void setPassword(String password) { 
    this.password = password; 
} 



public Admins(int idu, String logins, String password, Role role) { 
    super(); 
    this.idu = idu; 
    this.logins = logins; 
    this.password = password; 
    this.role = role; 
} 

public Admins() { 
    super(); 
} 

} 

und Role.java

@Entity 
public class Role { 


@Id 
@GeneratedValue(strategy=GenerationType.AUTO) 
@JsonView(View.all.class) 
private int idr ; 
@JsonView(View.all.class) 
private String role ; 
public int getIdr() { 
    return idr; 
} 
public void setIdr(int idr) { 
    this.idr = idr; 
} 
public String getRole() { 
    return role; 
} 
public void setRole(String role) { 
    this.role = role; 
} 
public Role(int idr, String role) { 
    super(); 
    this.idr = idr; 
    this.role = role; 
} 
public Role() { 
    super(); 
} 

wie Sie habe ich eine manyToOne Beziehung sehen kann Diese 2 Klassen, bin mit spring-boot Ich habe Repository wie folgt:

public interface AdminRepository extends JpaRepository<Admins, Integer>{ 
} 

und in der Steuerung:

@RestController 
public class AdminsController { 

@Autowired 
AdminRepository adminRepository; 

// this one to load R 
@JsonView(View.all.class) 
@RequestMapping(value = "/Admins/load") 
public List<Admins> load() { 
    return adminRepository.findAll(); 
} 

@RequestMapping(value = "/Admins/insert") 
public void insertusers(Admins a) { 
    adminRepository.save(a); 
} 

} 

in meinem Controller habe ich 2-Funktion zu laden und ein einzufügen, wenn ich versuche, idr Wert wie folgt einzufügen:

http://localhost:8080/Admins/insert?logins=yosra&password=yossra&role.idr=1 

bin immer Wert der Rolle null

{ 
idu: 23, 
logins: "yosra", 
password: "yossra", 
role: null 
} 

, die so sein annehmen wird:

{ 
idu: 3, 
logins: "bassem", 
password: "admin", 
role: { 
idr: 1, 
role: "Admin" 
} 
} 

Dank jeder Hilfe.

Antwort

2

Versuchen für Feld role in Admins.class Getter und Setter hinzuzufügen oder @Entity von Admins.class Attribut access = AccessType.FIELD zu Anmerkung hinzuzufügen.

Verwandte Themen