2017-10-05 51 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); 
相關問題