Micronaut Невозможно реализовать метод репозитория: Repository.update(объектный объект). Возможных реализаций не найдено

Вот мой стек:
- Micronaut 1.3.2
- Java 8
- Eclipse STS 4

Pom.xml выдержка:

<dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-jdbc-hikari</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>io.micronaut.data</groupId>
            <artifactId>micronaut-data-hibernate-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-hibernate-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <scope>runtime</scope>
        </dependency>
<path>
    <groupId>io.micronaut.data</groupId>
    <artifactId>micronaut-data-processor</artifactId>
    <version>1.0.0.M1</version>
</path>

Мой репозиторий:

import io.micronaut.data.annotation.Repository;
import io.micronaut.data.repository.CrudRepository;

@Repository
public interface UsuarioRepository extends CrudRepository<UsuarioModel, Long> { }

Моя служба:

private UsuarioDTO atualizar(UsuarioDTO usuario) {
      UsuarioModel modelo = new UsuarioModel();
      modelo.setIdade(usuario.idade);
      modelo.setNick(usuario.nick);
      modelo.setNome(usuario.nome);
      modelo.setPassword(usuario.password);
      this.usuarioRepository.update(modelo);
      return usuario;
}

application.yml:

micronaut:
  application:
    name: micronaut-chatroom
  server: 
    cors:
      enabled: true
datasources:
  default:
    url: jdbc:h2:mem:devDb
    driverClassName: org.h2.Driver
    username: sa
    password: ''
    schema-generate: CREATE_DROP
    dialect: H2
jpa:
  default:
    entity-scan:
        packages: 'com.cr.model'

Когда я запускаю команду Install maven в моем проекте Micronaut, я получаю сообщение об ошибке:

[ОШИБКА] Не удалось выполнить цель org.apache.maven.plugins:maven-compiler-plugin:3.7.0: компиляция (компиляция по умолчанию) в проекте micronaut-chatroom: Ошибка компиляции [ОШИБКА] Невозможно реализовать метод репозитория: UsuarioRepository. обновление (объектная сущность). Возможных реализаций не найдено.

Кто-нибудь прошел через это?

Заранее спасибо!

РЕДАКТИРОВАТЬ

Вот мой класс UsuarioModel

@Entity(name = "Usuario")
@Table(name = "usuario")
public class UsuarioModel implements Serializable {
    /**
     * 
     */
    private static final long serialVersionUID = -7468837154917949190L;
    @Id
    @GeneratedValue
    private Long id;
    private String nome;
    private String nick;
    private String idade;
    private String password;

    @OneToMany
    private List<MensagemModel> mensagens;

    //Getter/Setters ommited

}

А также мой класс MensagemModel:

@Entity(name = "Mensagem")
@Table(name = "mensagem")
public class MensagemModel implements Serializable {
    /**
     * 
     */
    private static final long serialVersionUID = 7634793331670289187L;
    @Id
    @GeneratedValue
    private Long id;
    @CreationTimestamp
    private LocalDateTime data;
    private String conteudo;

    @ManyToOne
    @JoinColumn(name = "usuario_id")
    private UsuarioModel usuario;
    //Getter/Setter ommited
}

1 ответ

РЕДАКТИРОВАТЬ:

Есть 2 возможных источника @Id декоратор в микронавте:

  • "родной" пакет аннотаций: io.micronaut.data.annotation
  • пакет jpa persistance доступен как: jakarta.persistence-api зависимость в maven

Когда вы украшаете класс @EntityЯ полагаю, вы используете последний набор декораторов. или, по крайней мере, смесь двух источников.

В качестве основного шага отладки вы можете попробовать удалить любую ссылку на javax.persistance и использовать только собственные декораторы. Так, например, не используйте@Entity скорее @MappedEntity и так далее.

просто закомментируйте любой импорт из javax.persistence.* и попробуйте с родным io.micronaut.data.annotation*.

это прояснит - я надеюсь, - если проблема заключается в каком-то повороте процесса аннотации.

СТАРЫЙ МУСОР БЫЛ УДАЛЕН - имел отношение к Котлину

Другие вопросы по тегам