Lorsque j'ai essayé de définir l'ID (clé primaire) qui a été automatiquement essayé par AUTO_INCREMENT dans MySQL sur l'objet, 1 a été défini.
Classe de domaine
Hoge.java
@Data
@NoArgsConstructor
public class Hoge{
private Integer id;
private String message;
}
Classe de service
HogeService.java
public class HogeService{
@Autowired
private HogeMapper hogeMapper;
public addHoge(){
Hoge hoge = new Hoge();
hoge.setMessage("Hello");
hoge.setId(hogeMapper.insert());
System.out.println(hoge.getId());//1
//L'ID sera 1.
}
}
Cartographe
HogeMapper.java
@Mapper
public interface HogeMapper{
Integer insert(Hoge hoge);
}
HogeMapper.xml
<insert id="insert">
INSERT INTO hoge(id, message)
VALUES (#{id}, #{message})
<selectKey resultType="Integer" keyProperty="id" order="AFTER">
select @@IDENTITY
</selectKey>
</insert>
Avec la méthode ci-dessus, seul 1 est défini dans hoge.
La selectKey de MyBatis étant directement affectée à l'objet, l'ID peut être obtenu en utilisant le code ci-dessous.
HogeService.java
public class HogeService{
@Autowired
private HogeMapper hogeMapper;
public addHoge(){
Hoge hoge = new Hoge();
hoge.setMessage("Hello");
hogeMapper.insert();
System.out.println(hoge.getId());
//L'ID numéroté automatiquement est émis! !!
}
}
La touche SELECT de Mybatis est affectée directement à l'objet.
Recommended Posts