我有一个基本实体,我想创建一个查询来检索该实体的成员。这是实体:
public class TestEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String author;
@Column(insertable=false)
private String db_id;
}
以及我尝试在其中创建查询的测试存储库。
@Repository
@Transactional
public interface TestRepository extends JpaRepository<TestEntity, Long> {
@Query("INSERT INTO TestEntity VALUES (:object.id, :object.name :object.author)")
void insertSynchronizedColumns(TestEntity object);
}
当前会引发错误:
antlr.MismatchedTokenException: expecting OPEN, found 'VALUES'
作为函数参数,我需要对象
,而不是特定的列名称。有没有办法检索 object
的 id
和其他字段?
最佳答案
您可以通过 nativeQuery
执行此操作,如下所示:
@Modifying
@Transactional
@Query("INSERT INTO TestEntity VALUES (:#{#object.id}, :#{#object.name}, :#{#object.author})",nativeQuery=true)
int insertSynchronizedColumns(@Param("object")TestEntity object);
关于java - 如何在@Query注解中检索对象成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59909568/