JavaField
Type-safe representation of a dotted MongoDB field path from Java method references.
This class is used to type-safely refer to fields from a DTO. For example, if we have the DTO:
public record Invoice(
@BsonId ObjectId id,
Customer customer
) {
public record Customer(
String name,
String address
) {}
}We can refer to the different fields as:
"_id":JavaField.of(Invoice::id)"customer":JavaField.of(Invoice::customer)"customer.name":JavaField.of(Invoice::customer).child(Customer::name)"customer.address":JavaField.of(Invoice::customer).child(Customer::address)
Because the generated reference is type-safe, you don't risk typos, and you can navigate from a DTO to all its usages in all requests using your usual IDE tooling.
Important note. If you're using KtMongo in a mixed Java-Kotlin project, note that this class has a slightly different mapping algorithm than the Kotlin Field implementations, because Kotlin has field references but Java doesn't, and Kotlin allows the name _id but Java doesn't. In Kotlin code, KtMongo always uses the Kotlin field name as-is, whereas this class will use _id if the field is annotated with @BsonId, remove the "get" prefix of a getter, etc. For the exact mapping algorithm, see the implementation.
See also
Builds an instance of this class.