Я не знаю о предыдущей поддержке, но по состоянию на 09 июня 2019 года вы можете абсолютно использовать WebFlux с репозиториями JPA!
Ваш стек не должен быть полностью реактивным.Мне нравится WebFlux, но мне нужна реляционная база данных.
У меня есть:
- spring-boot-starter-data-redis-реактивный
- spring-boot-starter-webflux
- spring-boot-starter-data-jpa
edit: (FYI) код находится в Kotlin, но все равно должен работать в Java.
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(basePackages = ["com.example.core.repositories"])
@EnableJpaAuditing
class PersistenceConfig
src / core / models / User
@Entity
@Table(name = "user")
class User(
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "user_id")
var id: Long,
@Column(name = "username")
var username: String,
@Column(name = "created_date", nullable = false, updatable = false)
@CreatedDate
@Temporal(TemporalType.TIMESTAMP)
val createdDate: Date,
@Column(name = "modified_date")
@LastModifiedDate
@Temporal(TemporalType.TIMESTAMP)
val modifiedDate: Date
) : Serializable {
/**
* This constructor is not to be used. This is for hibernate,
* which requires an empty constructor.
*/
constructor() : this(1L, "", "", Date(), Date())
companion object {
private const val serialVersionUID = 2398467923L
}
}
Я получил ту же ошибку JPA: Reactive Repositories are not supported by JPA.
, когда все еще возвращал моно объекты из запроса Spring Dataкак Mono<User>
.Однако, если вы удалите оболочку Mono
, она будет работать нормально.
src / core / repositories / UserRepository
@Repository
interface UserRepository: CrudRepository<User, Long> {
fun findUserByUsername(username: String): User?
}