使用Java中的JpaRepository插入新行

cwxwcias  于 2022-11-27  发布在  Java
关注(0)|答案(5)|浏览(269)

我对Spring JPA非常陌生。我有以下实体类,我想将其插入到表中:

@Entity
@Table(name = "test")
public class Test {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private int id;

    @Column(name = "user")
    private String user;
}

我有一个名为test的空表。我有多个Test对象,我想把它插入到表中。为此,我创建了一个repo类:

@Repository("testRepo")
public interface TestRepo extends JpaRepository<Test, String> {
//write insert query    
    @Modifying
    @Query(//What insert query I should write)
    void insertData(@Param("id") String id);

}

我已搜索,但仅获得更新查询的选项。

nukf8bse

nukf8bse1#

从父接口CrudRepository继承的方法.save(Entity entity)既可以用于更新现有实体,也可以用于创建新实体。

o2rvlv0m

o2rvlv0m2#

您的存储库接口扩展自JpaRepository,而JpaRepository扩展自 CrudRepository保存saveAndFlush方法可用作插入新行的默认方法。

***保存:***插入新行。可以将行列表作为参数提供给此方法。在示例中,应按如下方式使用:

testRepo.save(testEntity);

testRepo.save(testEntities);

***saveAndFlush:***只插入新行并立即提交更改。在您的示例中,应按如下方式使用它:

testRepo.saveAndFlush(testEntity);
sqyvllje

sqyvllje3#

在你的服务类中做一些类似下面的事情。你不必写一个单独的方法来保存实体。仓库的save方法可以用来保存实体。

class TestDAO{

@Autowired
TestRepo testRepo;

public void saveTest(Test test) {
testRepo.save(test);
}
9nvpjoqh

9nvpjoqh4#

(“插入数据表值(-1)",nativeQuery = true)

zengzsys

zengzsys5#

使用spring Boot 2.7.5,我使用JPA Repository,例如:

@Query("INSERT INTO Planeta p (nome, clima, terreno) VALUES (:nome, :clima, :terreno)")
    Integer insertPlaneta(String nome, String clima, String terreno);

根据参数方法,使用name_of_parameter传递参数。

相关问题