Как получить члены объекта в аннотации @Query - PullRequest
0 голосов
/ 25 января 2020

У меня есть базовая c сущность, и я хочу создать запрос, который будет извлекать членов этой сущности. Вот сущность:

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, а не указанные c имена столбцов. Есть ли способ получить object id и другие поля?

1 Ответ

1 голос
/ 25 января 2020

Вы можете сделать это через nativeQuery следующим образом:

 @Modifying
 @Transactional
 @Query("INSERT INTO TestEntity VALUES (:#{#object.id}, :#{#object.name}, :#{#object.author})",nativeQuery=true)
 int insertSynchronizedColumns(@Param("object")TestEntity object);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...