4つのフィールドを持つテーブルがあります。そして、既に存在するレコードを挿入した場合、つまりすべてのフィールド値がテーブルの前のレコードと一致します。データベースに挿入せずにレコードのみを返すにはどうすればよいですか?
私のモデルは次のようになります。
@Entity
public class QuestionDetails {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
private String department;
private String year;
private String academic_year;
private String semester;
private String type;
private String subject;
private int points;
private int unit;
// getter, setter
そしてコントローラーはこれを見てください:
@Autowired
public QuestionDetailsRepository qdRepository;
@PostMapping("/api/questionDetails")
public QuestionDetails addQuestion(@Valid @RequestBody QuestionDetails qDetails) {
// here i want to first check if qDetails object is already present in table .
If present i want to return that existed record instead of inserting into table.
QuestionDetails qd = qdRepository.save(qDetails); // save only new record
return qd;
}
郵便配達員を使用して、次のようなデータを送信します。
{
"department" : "IT",
"year" : "2020",
"academic_year" : "1st year",
"semester" : "first semester",
"type" : "objective",
"subject" : "JAVA",
"points" : 10,
"unit" : 5
}
ここでは、テーブルに既に存在するデータを送信しています。それで、このレコードがすでに存在するかどうかを確認したいですか?存在しない場合はテーブルに挿入し、それ以外の場合はその存在するレコードを返します。
springboot Jpa休止状態を使用してそれを達成するにはどうすればよいですか?