Я новичок в микронавтике и стараюсь следовать этому маленькому проекту . Однако я бы хотел, чтобы он работал с postgres.
Мой application.yml
выглядит следующим образом:
micronaut:
application:
name: hello-world
datasources:
default:
url: 'jdbc:postgresql://localhost:5432/test'
username: test
password: test
driver-class-name: org.postgresql.Driver
jpa:
default:
properties:
hibernate:
hbm2ddl:
auto: update
show_sql: true
У меня есть доступ к базе данных через intellij
. В pom.xml
у меня есть следующие зависимости:
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.2.8</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>io.micronaut.configuration</groupId>
<artifactId>micronaut-jdbc-hikari</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>io.micronaut.configuration</groupId>
<artifactId>micronaut-hibernate-jpa</artifactId>
</dependency>
Кроме того, в ссылке упоминается, что нужно annotionProcessor
, поэтому я добавил это в свой профиль сборки:
<annotationProcessorPaths>
<path>
<groupId>javax.persistence</groupId>
<artifactId>javax.persistence-api</artifactId>
<version>2.2</version>
</path>
</annotationProcessorPaths>
Так что теперь каждый раз, когда я пытаюсь сделать следующее:
@PersistenceContext
private EntityManager entityManager;
Я получаю следующую ошибку:
Caused by: io.micronaut.context.exceptions.NoSuchBeanException: No bean of type [javax.persistence.EntityManager] exists. Make sure the bean is not disabled by bean requirements (enable trace logging for 'io.micronaut.context.condition' to check) and if the bean is enabled then ensure the class is declared a bean and annotation processing is enabled (for Java and Kotlin the 'micronaut-inject-java' dependency should be configured as an annotation processor).
Однако у меня уже включен annotation processing
. И у меня также есть @Entity
-класс:
@Entity
@Table(name = "users")
public class User {
@NotBlank
@Column(name = "name")
private String userName;
public User() {
}
public User(@NotBlank final String userName) {
this.userName = userName;
}
public String getUserName() {
return userName;
}
public void setUserName(final String userName) {
this.userName = userName;
}
}
Что именно мне не хватает в моей настройке?