Micronaut无法实现Repository方法: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;
}

应用程序.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'

当我在我的Micronaut项目上运行Install-maven命令时,我得到了错误:

[错误]无法在项目micronaut聊天室上执行目标org.apache.maven.plugins:maven编译器插件:3.7.0:编译(默认编译(:编译失败[错误]无法实现Repository方法:UsuarioRepository.update(对象实体(。找不到可能的实现。

有人经历过吗?

提前感谢!

编辑

这是我的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
}

还有我的月经模型类:

@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
}

编辑:

micronaut中@Id修饰因子有两种可能来源:

  • "原生"注释包:io.micronaut.data.annotation
  • jpa持久性包可用作:maven中的jakarta.persistence-api依赖项

当您使用@Entity装饰类时,我想您使用的是后一组装饰器。或者至少两个源的混合物。

作为基本的调试步骤,您可以尝试删除对javax.persistence的任何引用,并使用仅限本机的装饰器。因此,例如,不要使用@Entity,而是使用@MappedEntity等等

只需注释掉来自javax.persistence.*的任何导入,并尝试使用本机io.micronaut.data.annotation*

如果问题在于注释过程中的一些扭曲,我希望这会更清楚。

旧RUBBISH已被删除-与Kotlin有关

相关内容

  • 没有找到相关文章

最新更新