如何从复合键中设置和获取值

How to set and get value from the composite key

我正在尝试使用 SubjectMark->private String cid; 在学生 class 中设置值 cid 如何在我的控制器中设置和获取值。 下面的实体和控制器方法:

@Entity
public class Student implements Serializable {
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    private SubjectMark id;
    private String fullName;
    private Integer totalMarks;
    private Double percentage;
    private String grade;
    //Setters and getters
}


//Composit class
@Embeddable
public class SubjectMark implements Serializable {
//Composit key
private String cid;
//Setters and getters

}

在我的控制器中,我尝试这样设置值:

@RequestMapping(value="getstdata",method=RequestMethod.GET)
@ResponseBody
public String getstdata(@RequestParam(value="cid")String cid){  
//Some code
try{

Student st=new Student();
st.getId().setCid(cid);//Set value like this but it is getting null pointer exception
//some code

//retuen some value
}

请帮帮我!

你需要在你的 class 中写一个 get set 方法,我想...... 尝试写类似

的东西

私有字符串 cid;

public 字符串 Cid { get => cid;设置 => cid = 值; }

问题的第一部分:

I am trying to set the value cid in student class using SubjectMark->private String cid; How to set and get value in my controller.

@Entity
@Table
public class Student implements Serializable {
private static final long serialVersionUID = 1L;
@EmbeddedId
private SubjectMark subjectMarkId;
private String otherField;
// setters, getters
}

//Composite class
@Embeddable
public class SubjectMark implements Serializable {
private String cId;
// setter, getter
}


//Controller
@GetMapping(value = "getstdata")
public String getStData(@RequestParam(value="cid") String cid) {
Student student = new Student();

student.setSubjectMark(new SubjectMark());
student.getSubjectMark().setCId(cid);//cid value dynamic
// some other code
return "";
}

问题的第二部分:

现在,当您尝试从空对象调用方法(setter 或 getter)时,发生空异常的原因之一。