我是初学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);
}
我已搜索但只获取更新查询的选项。
答案 0 :(得分:2)
继承自Parent接口.save(Entity entity)
的方法CrudRepository
可用于更新现有实体或创建新实体。
答案 1 :(得分:0)
您的存储库接口扩展自JpaRepository,它扩展自 CrudRepository 。 保存和 saveAndFlush 方法可用作默认插入新行。
保存: 插入新行。您可以将行列表作为参数提供给此方法。在您的示例中,它应该像这样使用:
testRepo.save(testEntity);
或
testRepo.save(testEntities);
saveAndFlush: 仅插入新行并立即提交更改。 在您的示例中,它应该像这样使用:
testRepo.saveAndFlush(testEntity);
答案 2 :(得分:0)
("插入测试值(:id)",nativeQuery = true)
答案 3 :(得分:-1)
在您的服务类中执行类似下面的操作。 您不必编写单独的方法来保存实体。存储库的save方法可用于保存实体。
class TestDAO{
@Autowired
TestRepo testRepo;
public void saveTest(Test test) {
testRepo.save(test);
}