entityManager 怎么执行自定义 insert 语句?

关注者
1
被浏览
36

1 个回答

在JPA中,可以使用 @Query 注解和 EntityManager 对象来执行自定义的Insert语句。以下是基本的步骤:定义自定义的Insert语句,例如:

@Modifyin

@Query("INSERT INTO User (name, age) VALUES (:name, :age)")

void insertUser(@Param("name") String name, @Param("age") Integer age);

在DAO层中创建方法,该方法应该使用 EntityManager 对象调用定义的自定义Insert语句,例如:

@Repositor

public class UserRepositoryImpl implements UserRepository {


@PersistenceContext

private EntityManager entityManager;


@Override

public void addUser(String name, Integer age) {

entityManager.createNativeQuery("INSERT INTO User (name, age) VALUES (:name, :age)")

.setParameter("name", name)

.setParameter("age", age)

.executeUpdate();

}

}

在上述示例中,我们使用 @PersistenceContext 注解注入 EntityManager 对象,并使用 createNativeQuery 方法创建自定义Insert语句。然后,我们可以使用 setParameter 方法设置参数并调用 executeUpdate 方法来执行Insert语句。

请注意,我们使用 createNativeQuery 方法而不是 createQuery 方法,因为我们正在执行自定义的SQL语句而不是JPQL语句。

这是一个基本的例子,实际的实现可能会有所不同,具体取决于你的数据模型和需求。