2017-10-05 627 views
0

我对Spring JPA很新。我有以下我想在表中插入实体类:在java中使用JpaRepository插入一个新行

@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对象,我想将它插入表中。为此,我已经创建了一个回购类:

@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); 

} 

我已经搜查,但只获得了更新的查询选项。

+0

这是春天的数据JPA(= JPA API!) – DN1

回答

0
In your service class do something similar to below. 

您不必编写单独的方法来保存实体。存储库的保存方法可用于保存实体。

class TestDAO{ 

@Autowired 
TestRepo testRepo ; 

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

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

0

你的仓库接口从JpaRepository从CrudRepository扩展延伸。 保存saveAndFlush方法可用作默认插入新行。

节省:插入新行。您可以将行列表作为参数提供给此方法。在您的例子应该是用这样的:

testRepo.save(testEntity); 

testRepo.save(testEntities); 

saveAndFlush:只有插入新行,并立即提交更改。 在你的榜样应该是用这样的:

testRepo.saveAndFlush(testEntity); 
相关问题