This commit is contained in:
Lukas Eder 2024-05-30 13:36:09 +02:00
parent 7a4b83a589
commit 9401eecea3
4 changed files with 23 additions and 15 deletions

View File

@ -1036,7 +1036,9 @@ public interface Record extends Fields, Attachable, Comparable<Record>, Formatta
* <p>
* <h5>If any JPA {@link jakarta.persistence.Column} annotations are found
* on the {@link Class} of the provided <code>source</code>, only those are
* used. Matching candidates are:</h5>
* used (assuming the <code>jOOQ-jpa-extensions</code> module is on the
* classpath and {@link Configuration#annotatedPojoMemberProvider()}
* configures it. Matching candidates are:</h5>
* <p>
* <ul>
* <li>Public no-argument instance methods annotated with
@ -1045,12 +1047,13 @@ public interface Record extends Fields, Attachable, Comparable<Record>, Formatta
* or <code>isXXX</code>, if there exists a matching public single-argument
* <code>setXXX()</code> instance method that is annotated with
* <code>jakarta.persistence.Column</code></li>
* <li>Public instance member fields annotated with <code>jakarta.persistence.Column</code></li>
* <li>Public instance member fields annotated with
* <code>jakarta.persistence.Column</code></li>
* </ul>
* Additional matching rules:
* <ul>
* <li>{@link jakarta.persistence.Column#name()} must match {@link Field#getName()}. All other
* annotation attributes are ignored</li>
* <li>{@link jakarta.persistence.Column#name()} must match
* {@link Field#getName()}. All other annotation attributes are ignored</li>
* <li>Only the first match per field is used</li>
* <li>Matching methods have a higher priority than matching member
* fields</li>
@ -1059,9 +1062,9 @@ public interface Record extends Fields, Attachable, Comparable<Record>, Formatta
* <li>Static methods / member fields are ignored</li>
* </ul>
* <p>
* <h5>If there are no JPA <code>jakarta.persistence.Column</code> annotations, or jOOQ can't
* find the <code>jakarta.persistence</code> API on the classpath, jOOQ will
* map members by naming convention:</h5>
* <h5>If there are no JPA <code>jakarta.persistence.Column</code>
* annotations, or jOOQ can't find the <code>jakarta.persistence</code> API
* on the classpath, jOOQ will map members by naming convention:</h5>
* <p>
* If {@link Field#getName()} is <code>MY_field</code> (case-sensitive!),
* then this field's value will be fetched from the first of these:

View File

@ -5530,7 +5530,7 @@ public class Settings
}
/**
* Whether JPA annotations should be considered by the DefaultRecordMapper.
* Whether JPA annotations should be considered by the {@link org.jooq.impl.DefaultRecordMapper}, assuming the <code>jOOQ-jpa-extensions</code> is on the classpath.
*
* @return
* possible object is
@ -5542,7 +5542,7 @@ public class Settings
}
/**
* Whether JPA annotations should be considered by the DefaultRecordMapper.
* Whether JPA annotations should be considered by the {@link org.jooq.impl.DefaultRecordMapper}, assuming the <code>jOOQ-jpa-extensions</code> is on the classpath.
*
* @param value
* allowed object is
@ -8963,7 +8963,7 @@ public class Settings
}
/**
* Whether JPA annotations should be considered by the DefaultRecordMapper.
* Whether JPA annotations should be considered by the {@link org.jooq.impl.DefaultRecordMapper}, assuming the <code>jOOQ-jpa-extensions</code> is on the classpath.
*
*/
public Settings withMapJPAAnnotations(Boolean value) {

View File

@ -161,7 +161,10 @@ import org.jooq.tools.reflect.ReflectException;
* <p>
* <h5>If a default constructor is available and any JPA
* {@link jakarta.persistence.Column} annotations are found on the provided
* <code>&lt;E&gt;</code>, only those are used:</h5>
* <code>&lt;E&gt;</code> type, and the <code>jOOQ-jpa-extensions</code> module
* is found on the classpath and configured in
* {@link Configuration#annotatedPojoMemberProvider()}, only those are
* used:</h5>
* <p>
* <ul>
* <li>If <code>&lt;E&gt;</code> contains single-argument instance methods of
@ -226,9 +229,11 @@ import org.jooq.tools.reflect.ReflectException;
* <li>If the property names provided to the constructor match the record's
* columns via the aforementioned naming conventions, that information is used.
* </li>
* <li>If those POJO members or getters have JPA annotations, those will be used
* according to the aforementioned rules, in order to map <code>Record</code>
* values onto constructor arguments.</li>
* <li>If those POJO members or getters have JPA annotations, and the
* <code>jOOQ-jpa-extensions</code> module is found on the classpath and
* configured in {@link Configuration#annotatedPojoMemberProvider()}, those will
* be used according to the aforementioned rules, in order to map
* <code>Record</code> values onto constructor arguments.</li>
* <li>If those POJO members or getters don't have JPA annotations, the
* aforementioned naming conventions will be used, in order to map
* <code>Record</code> values onto constructor arguments.</li>

View File

@ -1401,7 +1401,7 @@ IDENTITY values, and if {@link #returnAllOnUpdatableRecord} is active, also othe
</element>
<element name="mapJPAAnnotations" type="boolean" minOccurs="0" maxOccurs="1" default="true">
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[Whether JPA annotations should be considered by the DefaultRecordMapper.]]></jxb:javadoc></jxb:property></appinfo></annotation>
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[Whether JPA annotations should be considered by the {@link org.jooq.impl.DefaultRecordMapper}, assuming the <code>jOOQ-jpa-extensions</code> is on the classpath.]]></jxb:javadoc></jxb:property></appinfo></annotation>
</element>
<element name="mapRecordComponentParameterNames" type="boolean" minOccurs="0" maxOccurs="1" default="false">