Mam value object z @Embeddable:
const val MIN_PASSWORD_LENGTH = 5
@Embeddable
class AccountUserPassword private constructor(val text: String) {
constructor() : this("default")
companion object {
fun create(text: String, passwordEncoder: PasswordEncoder): Either<Error, AccountUserPassword> =
if (text.length < MIN_PASSWORD_LENGTH)
Either.left(WrongPasswordLengthError(text)) else
Either.right(AccountUserPassword(passwordEncoder.encode(text)))
}
}
Pojawia się taki problem: "For property-based access both getters and setters should be present". Oczywiście ten value object musi być immutable, więc nie mogę dodać żadych setterów. W Javie działa normalnie z publicznym i finalnym polem.