-
- All Superinterfaces:
Attachable,Comparable<Record>,Formattable,Serializable
- All Known Subinterfaces:
EmbeddableRecord<R>,Record1<T1>,Record10<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10>,Record11<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11>,Record12<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12>,Record13<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13>,Record14<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14>,Record15<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15>,Record16<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16>,Record17<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17>,Record18<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18>,Record19<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19>,Record2<T1,T2>,Record20<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20>,Record21<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21>,Record22<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22>,Record3<T1,T2,T3>,Record4<T1,T2,T3,T4>,Record5<T1,T2,T3,T4,T5>,Record6<T1,T2,T3,T4,T5,T6>,Record7<T1,T2,T3,T4,T5,T6,T7>,Record8<T1,T2,T3,T4,T5,T6,T7,T8>,Record9<T1,T2,T3,T4,T5,T6,T7,T8,T9>,TableRecord<R>,UDTRecord<R>,UpdatableRecord<R>
- All Known Implementing Classes:
CustomRecord,EmbeddableRecordImpl,TableRecordImpl,UDTRecordImpl,UpdatableRecordImpl
public interface Record extends Attachable, Comparable<Record>, Formattable
A database result record.A record essentially combines a list of columns (
Field) with a corresponding list of values, each value being of the respective field's type.While records can be seen as generic column / value mappings, their concrete implementations often specialise the above description in any of the following ways:
Table records
Records originating from a concrete database table (or view) are modelled by jOOQ as
TableRecordorUpdatableRecord, if they contain a primary key. If you're using jOOQ's code generator, you can generate even more concrete types of table records, i.e. one table record per table.UDT records
SQLDialect.ORACLEandSQLDialect.POSTGRESformally support user defined types (UDT), which are modelled by jOOQ asUDTRecord. In addition to being regular records (column / value mappings), they also implement the JDBCSQLDataAPI in order to be streamed to a JDBCPreparedStatementor from a JDBCResultSetRecords of well-defined degree
When projecting custom record types in SQL, new ad-hoc types of a certain degree are formed on the fly. Records with degree <= 22 are reflected by jOOQ through the
Record1,Record2, ...Record22classes, which cover the respective row value expressionsRow1,Row2, ...Row22Note that generated
TableRecordsandUDTRecordsalso implement aRecord[N]interface, ifN <= 22Record implements Comparable
jOOQ records have a natural ordering implemented in the same way as this is defined in the SQL standard. For more details, see the
compareTo(Record)method- Author:
- Lukas Eder
- See Also:
Result
-
-
Method Summary
All Methods Instance Methods Abstract Methods Deprecated Methods Modifier and Type Method Description booleanchanged()Check if this record has been changed from its original as fetched from the database.voidchanged(boolean changed)Set all of this record's internal changed flags to the supplied value.booleanchanged(int fieldIndex)Check if a field's value has been changed from its original as fetched from the database.voidchanged(int fieldIndex, boolean changed)Set this record's internal changed flag to the supplied value for a given field.booleanchanged(String fieldName)Check if a field's value has been changed from its original as fetched from the database.voidchanged(String fieldName, boolean changed)Set this record's internal changed flag to the supplied value for a given field.booleanchanged(Field<?> field)Check if a field's value has been changed from its original as fetched from the database.voidchanged(Field<?> field, boolean changed)Set this record's internal changed flag to the supplied value for a given field.booleanchanged(Name fieldName)Check if a field's value has been changed from its original as fetched from the database.voidchanged(Name fieldName, boolean changed)Set this record's internal changed flag to the supplied value for a given field.intcompareTo(Record record)Compares thisRecordwith anotherRecordaccording to their natural ordering.booleanequals(Object other)Compare thisRecordwith anotherRecordfor equality.Field<?>field(int index)Get a specific field from this Record.Field<?>field(String name)Get a specific field from this Record.<T> Field<T>field(Field<T> field)Get a specific field from this Record.Field<?>field(Name name)Get a specific qualified field from this Record.Field<?>[]fields()Get all fields from this Record.Field<?>[]fields(int... fieldIndexes)Get all fields from this Record, providing some field indexes.Field<?>[]fields(String... fieldNames)Get all fields from this Record, providing some field names.Field<?>[]fields(Field<?>... fields)Get all fields from this Record, providing some fields.Field<?>[]fields(Name... fieldNames)Get all fields from this Record, providing some field names.RowfieldsRow()Get this record's fields as aRow.voidfrom(Object source)Load data into this record from a source.voidfrom(Object source, int... fieldIndexes)Load data into this record from a source, providing some field indexes.voidfrom(Object source, String... fieldNames)Load data into this record from a source, providing some field names.voidfrom(Object source, Field<?>... fields)Load data into this record from a source, providing some fields.voidfrom(Object source, Name... fieldNames)Load data into this record from a source, providing some field names.voidfromArray(Object... array)Load data from an array into this record.voidfromArray(Object[] array, int... fieldIndexes)Load data from an array into this record, providing some fields indexes.voidfromArray(Object[] array, String... fieldNames)Load data from an array into this record, providing some fields names.voidfromArray(Object[] array, Field<?>... fields)Load data from an array into this record, providing some fields.voidfromArray(Object[] array, Name... fieldNames)Load data from an array into this record, providing some fields names.voidfromMap(Map<String,?> map)Load data from a map into this record.voidfromMap(Map<String,?> map, int... fieldIndexes)Load data from a map into this record, providing some field indexes.voidfromMap(Map<String,?> map, String... fieldNames)Load data from a map into this record, providing some field names.voidfromMap(Map<String,?> map, Field<?>... fields)Load data from a map into this record, providing some fields.voidfromMap(Map<String,?> map, Name... fieldNames)Load data from a map into this record, providing some field names.Objectget(int index)Get a value from this record, providing a field index.<T> Tget(int index, Class<? extends T> type)Get a converted value from this record, providing a field index.<U> Uget(int index, Converter<?,? extends U> converter)Get a converted value from this record, providing a field index.Objectget(String fieldName)Get a value from this Record, providing a field name.<T> Tget(String fieldName, Class<? extends T> type)Get a converted value from this Record, providing a field name.<U> Uget(String fieldName, Converter<?,? extends U> converter)Get a converted value from this Record, providing a field name.<T> Tget(Field<?> field, Class<? extends T> type)Get a converted value from this Record, providing a field.<T> Tget(Field<T> field)Get a value from this Record, providing a field.<T,U>
Uget(Field<T> field, Converter<? super T,? extends U> converter)Get a converted value from this Record, providing a field.Objectget(Name fieldName)Get a value from this Record, providing a field name.<T> Tget(Name fieldName, Class<? extends T> type)Get a converted value from this Record, providing a field name.<U> Uget(Name fieldName, Converter<?,? extends U> converter)Get a converted value from this Record, providing a field name.ObjectgetValue(int index)Get a value from this record, providing a field index.<T> TgetValue(int index, Class<? extends T> type)Get a converted value from this record, providing a field index.<T> TgetValue(int index, Class<? extends T> type, T defaultValue)Deprecated.- 3.3.0 - [#2878] - This method will be removed in jOOQ 4.0ObjectgetValue(int index, Object defaultValue)Deprecated.- 3.3.0 - [#2878] - This method will be removed in jOOQ 4.0<U> UgetValue(int index, Converter<?,? extends U> converter)Get a converted value from this record, providing a field index.<U> UgetValue(int index, Converter<?,? extends U> converter, U defaultValue)Deprecated.- 3.3.0 - [#2878] - This method will be removed in jOOQ 4.0ObjectgetValue(String fieldName)Get a value from this Record, providing a field name.<T> TgetValue(String fieldName, Class<? extends T> type)Get a converted value from this Record, providing a field name.<T> TgetValue(String fieldName, Class<? extends T> type, T defaultValue)Deprecated.- 3.3.0 - [#2878] - This method will be removed in jOOQ 4.0ObjectgetValue(String fieldName, Object defaultValue)Deprecated.- 3.3.0 - [#2878] - This method will be removed in jOOQ 4.0<U> UgetValue(String fieldName, Converter<?,? extends U> converter)Get a converted value from this Record, providing a field name.<U> UgetValue(String fieldName, Converter<?,? extends U> converter, U defaultValue)Deprecated.- 3.3.0 - [#2878] - This method will be removed in jOOQ 4.0<T> TgetValue(Field<?> field, Class<? extends T> type)Get a converted value from this Record, providing a field.<T> TgetValue(Field<?> field, Class<? extends T> type, T defaultValue)Deprecated.- 3.3.0 - [#2878] - This method will be removed in jOOQ 4.0<T> TgetValue(Field<T> field)Get a value from this Record, providing a field.<T,U>
UgetValue(Field<T> field, Converter<? super T,? extends U> converter)Get a converted value from this Record, providing a field.<T,U>
UgetValue(Field<T> field, Converter<? super T,? extends U> converter, U defaultValue)Deprecated.- 3.3.0 - [#2878] - This method will be removed in jOOQ 4.0<T> TgetValue(Field<T> field, T defaultValue)Deprecated.- 3.3.0 - [#2878] - This method will be removed in jOOQ 4.0ObjectgetValue(Name fieldName)Get a value from this Record, providing a field name.<T> TgetValue(Name fieldName, Class<? extends T> type)Get a converted value from this Record, providing a field name.<U> UgetValue(Name fieldName, Converter<?,? extends U> converter)Get a converted value from this Record, providing a field name.inthashCode()Get a hash code of thisRecord, based on the underlying row value expression.intindexOf(String fieldName)Get a field's index from this record.intindexOf(Field<?> field)Get a field's index from this record.intindexOf(Name fieldName)Get a field's index from this record.<E> Einto(E object)Map resulting records onto a custom type.<E> Einto(Class<? extends E> type)Map resulting records onto a custom type.Recordinto(Field<?>... fields)Copy this record into a new record holding only a subset of the previous fields.<T1> Record1<T1>into(Field<T1> field1)Copy this record into a new record holding only a subset of the previous fields.<T1,T2>
Record2<T1,T2>into(Field<T1> field1, Field<T2> field2)Copy this record into a new record holding only a subset of the previous fields.<T1,T2,T3>
Record3<T1,T2,T3>into(Field<T1> field1, Field<T2> field2, Field<T3> field3)Copy this record into a new record holding only a subset of the previous fields.<T1,T2,T3,T4>
Record4<T1,T2,T3,T4>into(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4)Copy this record into a new record holding only a subset of the previous fields.<T1,T2,T3,T4,T5>
Record5<T1,T2,T3,T4,T5>into(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5)Copy this record into a new record holding only a subset of the previous fields.<T1,T2,T3,T4,T5,T6>
Record6<T1,T2,T3,T4,T5,T6>into(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6)Copy this record into a new record holding only a subset of the previous fields.<T1,T2,T3,T4,T5,T6,T7>
Record7<T1,T2,T3,T4,T5,T6,T7>into(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7)Copy this record into a new record holding only a subset of the previous fields.<T1,T2,T3,T4,T5,T6,T7,T8>
Record8<T1,T2,T3,T4,T5,T6,T7,T8>into(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8)Copy this record into a new record holding only a subset of the previous fields.<T1,T2,T3,T4,T5,T6,T7,T8,T9>
Record9<T1,T2,T3,T4,T5,T6,T7,T8,T9>into(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9)Copy this record into a new record holding only a subset of the previous fields.<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10>
Record10<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10>into(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10)Copy this record into a new record holding only a subset of the previous fields.<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11>
Record11<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11>into(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11)Copy this record into a new record holding only a subset of the previous fields.<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12>
Record12<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12>into(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12)Copy this record into a new record holding only a subset of the previous fields.<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13>
Record13<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13>into(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13)Copy this record into a new record holding only a subset of the previous fields.<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14>
Record14<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14>into(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14)Copy this record into a new record holding only a subset of the previous fields.<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15>
Record15<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15>into(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15)Copy this record into a new record holding only a subset of the previous fields.<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16>
Record16<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16>into(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16)Copy this record into a new record holding only a subset of the previous fields.<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17>
Record17<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17>into(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17)Copy this record into a new record holding only a subset of the previous fields.<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18>
Record18<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18>into(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17, Field<T18> field18)Copy this record into a new record holding only a subset of the previous fields.<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19>
Record19<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19>into(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17, Field<T18> field18, Field<T19> field19)Copy this record into a new record holding only a subset of the previous fields.<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20>
Record20<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20>into(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17, Field<T18> field18, Field<T19> field19, Field<T20> field20)Copy this record into a new record holding only a subset of the previous fields.<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21>
Record21<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21>into(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17, Field<T18> field18, Field<T19> field19, Field<T20> field20, Field<T21> field21)Copy this record into a new record holding only a subset of the previous fields.<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22>
Record22<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22>into(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17, Field<T18> field18, Field<T19> field19, Field<T20> field20, Field<T21> field21, Field<T22> field22)Copy this record into a new record holding only a subset of the previous fields.<R extends Record>
Rinto(Table<R> table)Map resulting records onto a custom record type.Object[]intoArray()Convert this record into an array.List<Object>intoList()Convert this record into a list.Map<String,Object>intoMap()Return this record as a name/value map.ResultSetintoResultSet()Generate an in-memory JDBCResultSetcontaining the data of thisRecord.Stream<Object>intoStream()Convert this record into a stream.<E> Emap(RecordMapper<Record,E> mapper)Map this record into a custom mapper callback.Recordoriginal()Get this record containing the original values as fetched from the database.Objectoriginal(int fieldIndex)Get an original value from this record as fetched from the database.Objectoriginal(String fieldName)Get an original value from this record as fetched from the database.<T> Toriginal(Field<T> field)Get an original value from this record as fetched from the database.Objectoriginal(Name fieldName)Get an original value from this record as fetched from the database.voidreset()voidreset(int fieldIndex)voidreset(String fieldName)voidreset(Field<?> field)voidreset(Name fieldName)<T> voidset(Field<T> field, T value)Set a value into this record.<T,U>
voidset(Field<T> field, U value, Converter<? extends T,? super U> converter)Set a value into this record.<T> voidsetValue(Field<T> field, T value)Set a value into this record.<T,U>
voidsetValue(Field<T> field, U value, Converter<? extends T,? super U> converter)Set a value into this record.intsize()Get the number of fields of this record.RowvaluesRow()Get this record's values as aRow.<T> Recordwith(Field<T> field, T value)Set a value into this record.<T,U>
Recordwith(Field<T> field, U value, Converter<? extends T,? super U> converter)Set a value into this record.-
Methods inherited from interface org.jooq.Attachable
attach, configuration, detach
-
Methods inherited from interface org.jooq.Formattable
format, format, format, format, format, format, format, format, format, formatChart, formatChart, formatChart, formatChart, formatChart, formatChart, formatCSV, formatCSV, formatCSV, formatCSV, formatCSV, formatCSV, formatCSV, formatCSV, formatCSV, formatCSV, formatCSV, formatCSV, formatCSV, formatCSV, formatCSV, formatCSV, formatCSV, formatCSV, formatCSV, formatCSV, formatCSV, formatHTML, formatHTML, formatHTML, formatInsert, formatInsert, formatInsert, formatInsert, formatInsert, formatInsert, formatJSON, formatJSON, formatJSON, formatJSON, formatJSON, formatJSON, formatXML, formatXML, formatXML, formatXML, formatXML, formatXML, intoXML, intoXML, intoXML, intoXML
-
-
-
-
Method Detail
-
field
<T> Field<T> field(Field<T> field)
Get a specific field from this Record.This will return:
- A field that is the same as the argument field (by identity comparison).
- A field that is equal to the argument field (exact matching fully qualified name).
- A field that is equal to the argument field (partially matching qualified name).
- A field whose name is equal to the name of the argument field.
nullotherwise.
- See Also:
Row.field(Field)
-
field
Field<?> field(String name)
Get a specific field from this Record.- See Also:
Row.field(String)
-
field
Field<?> field(Name name)
Get a specific qualified field from this Record.- See Also:
Row.field(Name)
-
field
Field<?> field(int index)
Get a specific field from this Record.- See Also:
Row.field(int)
-
fields
Field<?>[] fields()
Get all fields from this Record.- See Also:
Row.fields()
-
fields
Field<?>[] fields(Field<?>... fields)
Get all fields from this Record, providing some fields.- Returns:
- All available fields
- See Also:
Row.fields(Field...)
-
fields
Field<?>[] fields(String... fieldNames)
Get all fields from this Record, providing some field names.- Returns:
- All available fields
- See Also:
Row.fields(String...)
-
fields
Field<?>[] fields(Name... fieldNames)
Get all fields from this Record, providing some field names.- Returns:
- All available fields
- See Also:
Row.fields(Name...)
-
fields
Field<?>[] fields(int... fieldIndexes)
Get all fields from this Record, providing some field indexes.- Returns:
- All available fields
- See Also:
Row.fields(int...)
-
indexOf
int indexOf(Field<?> field)
Get a field's index from this record.- Parameters:
field- The field to look for- Returns:
- The field's index or
-1if the field is not contained in this record.
-
indexOf
int indexOf(String fieldName)
Get a field's index from this record.- Parameters:
fieldName- The field name to look for- Returns:
- The field's index or
-1if the field is not contained in this record.
-
indexOf
int indexOf(Name fieldName)
Get a field's index from this record.- Parameters:
fieldName- The field name to look for- Returns:
- The field's index or
-1if the field is not contained in this record
-
get
<T> T get(Field<T> field) throws IllegalArgumentException
Get a value from this Record, providing a field.If this record contains a field with the same
Field.getName()as the argument field, that value is retrieved.- Type Parameters:
T- The generic field parameter- Parameters:
field- The field- Returns:
- The value of a field contained in this record
- Throws:
IllegalArgumentException- If the argument field is not contained infieldsRow()
-
get
<T> T get(Field<?> field, Class<? extends T> type) throws IllegalArgumentException, DataTypeException
Get a converted value from this Record, providing a field.If this record contains a field with the same
Field.getName()as the argument field, that value is retrieved.- Type Parameters:
T- The conversion type parameter- Parameters:
field- The fieldtype- The conversion type- Returns:
- The value of a field contained in this record
- Throws:
IllegalArgumentException- If the argument field is not contained infieldsRow()DataTypeException- wrapping any data type conversion exception that might have occurredDataTypeException- wrapping any data type conversion exception that might have occurred- See Also:
Convert.convert(Object, Class)
-
get
<T,U> U get(Field<T> field, Converter<? super T,? extends U> converter) throws IllegalArgumentException, DataTypeException
Get a converted value from this Record, providing a field.If this record contains a field with the same
Field.getName()as the argument field, that value is retrieved.- Type Parameters:
T- The database type parameterU- The conversion type parameter- Parameters:
field- The fieldconverter- The data type converter- Returns:
- The value of a field contained in this record
- Throws:
IllegalArgumentException- If the argument field is not contained infieldsRow()DataTypeException- wrapping any data type conversion exception that might have occurred- See Also:
Convert.convert(Object, Converter)
-
get
Object get(String fieldName) throws IllegalArgumentException
Get a value from this Record, providing a field name.- Parameters:
fieldName- The field's name- Returns:
- The value of a field's name contained in this record
- Throws:
IllegalArgumentException- If the argument fieldName is not contained in the record
-
get
<T> T get(String fieldName, Class<? extends T> type) throws IllegalArgumentException, DataTypeException
Get a converted value from this Record, providing a field name.- Type Parameters:
T- The conversion type parameter- Parameters:
fieldName- The field's nametype- The conversion type- Returns:
- The value of a field's name contained in this record
- Throws:
IllegalArgumentException- If the argument fieldName is not contained in the recordDataTypeException- wrapping any data type conversion exception that might have occurred- See Also:
Convert.convert(Object, Class)
-
get
<U> U get(String fieldName, Converter<?,? extends U> converter) throws IllegalArgumentException, DataTypeException
Get a converted value from this Record, providing a field name.- Type Parameters:
U- The conversion type parameter- Parameters:
fieldName- The field's nameconverter- The data type converter- Returns:
- The value of a field's name contained in this record
- Throws:
IllegalArgumentException- If the argument fieldName is not contained in the recordDataTypeException- wrapping any data type conversion exception that might have occurred- See Also:
Convert.convert(Object, Converter)
-
get
Object get(Name fieldName) throws IllegalArgumentException
Get a value from this Record, providing a field name.- Parameters:
fieldName- The field's name- Returns:
- The value of a field's name contained in this record
- Throws:
IllegalArgumentException- If the argument fieldName is not contained in the record
-
get
<T> T get(Name fieldName, Class<? extends T> type) throws IllegalArgumentException, DataTypeException
Get a converted value from this Record, providing a field name.- Type Parameters:
T- The conversion type parameter- Parameters:
fieldName- The field's nametype- The conversion type- Returns:
- The value of a field's name contained in this record
- Throws:
IllegalArgumentException- If the argument fieldName is not contained in the recordDataTypeException- wrapping any data type conversion exception that might have occurred- See Also:
Convert.convert(Object, Class)
-
get
<U> U get(Name fieldName, Converter<?,? extends U> converter) throws IllegalArgumentException, DataTypeException
Get a converted value from this Record, providing a field name.- Type Parameters:
U- The conversion type parameter- Parameters:
fieldName- The field's nameconverter- The data type converter- Returns:
- The value of a field's name contained in this record
- Throws:
IllegalArgumentException- If the argument fieldName is not contained in the recordDataTypeException- wrapping any data type conversion exception that might have occurred- See Also:
Convert.convert(Object, Converter)
-
get
Object get(int index) throws IllegalArgumentException
Get a value from this record, providing a field index.- Parameters:
index- The field's index- Returns:
- The value of a field's index contained in this record
- Throws:
IllegalArgumentException- If the argument index is not contained in the record
-
get
<T> T get(int index, Class<? extends T> type) throws IllegalArgumentException, DataTypeExceptionGet a converted value from this record, providing a field index.- Type Parameters:
T- The conversion type parameter- Parameters:
index- The field's indextype- The conversion type- Returns:
- The value of a field's index contained in this record
- Throws:
IllegalArgumentException- If the argument index is not contained in the recordDataTypeException- wrapping data type conversion exception that might have occurred- See Also:
Convert.convert(Object, Class)
-
get
<U> U get(int index, Converter<?,? extends U> converter) throws IllegalArgumentException, DataTypeExceptionGet a converted value from this record, providing a field index.- Type Parameters:
U- The conversion type parameter- Parameters:
index- The field's indexconverter- The data type converter- Returns:
- The value of a field's index contained in this record
- Throws:
IllegalArgumentException- If the argument index is not contained in the recordDataTypeException- wrapping data type conversion exception that might have occurred- See Also:
Convert.convert(Object, Converter)
-
set
<T> void set(Field<T> field, T value)
Set a value into this record.This will always set the
changed(Field)flag for the givenfield, no matter if setting the value actually changes the value.Changing
Table.getPrimaryKey()values will set allchanged()flags to true, in order to produce completeINSERTstatements on subsequentUpdatableRecord.store()operations.- Type Parameters:
T- The generic field parameter- Parameters:
field- The fieldvalue- The value
-
set
<T,U> void set(Field<T> field, U value, Converter<? extends T,? super U> converter)
Set a value into this record.This will always set the
changed(Field)flag for the givenfield, no matter if setting the value actually changes the value.Changing
Table.getPrimaryKey()values will set allchanged()flags to true, in order to produce completeINSERTstatements on subsequentUpdatableRecord.store()operations.- Type Parameters:
T- The generic field parameterU- The conversion type parameter- Parameters:
field- The fieldvalue- The valueconverter- The converter used to convertvalueinto an appropriate type
-
with
<T> Record with(Field<T> field, T value)
Set a value into this record.Like
set(Field, Object)but returningthisfor fluent setting of multiple values.
-
with
<T,U> Record with(Field<T> field, U value, Converter<? extends T,? super U> converter)
Set a value into this record.Like
set(Field, Object, Converter)but returningthisfor fluent setting of multiple values.
-
size
int size()
Get the number of fields of this record.
-
original
Record original()
Get this record containing the original values as fetched from the database.Record values can be freely modified after having fetched a record from the database. Every record also references the originally fetched values. This method returns a new record containing those original values.
- See Also:
original(Field),original(int),original(String)
-
original
<T> T original(Field<T> field)
Get an original value from this record as fetched from the database.Record values can be freely modified after having fetched a record from the database. Every record also references the originally fetched values. This method returns such an original value for a field.
- See Also:
original()
-
original
Object original(int fieldIndex)
Get an original value from this record as fetched from the database.Record values can be freely modified after having fetched a record from the database. Every record also references the originally fetched values. This method returns such an original value for a field.
- See Also:
original()
-
original
Object original(String fieldName)
Get an original value from this record as fetched from the database.Record values can be freely modified after having fetched a record from the database. Every record also references the originally fetched values. This method returns such an original value for a field.
- See Also:
original()
-
original
Object original(Name fieldName)
Get an original value from this record as fetched from the database.Record values can be freely modified after having fetched a record from the database. Every record also references the originally fetched values. This method returns such an original value for a field.
- See Also:
original()
-
changed
boolean changed()
Check if this record has been changed from its original as fetched from the database.If this returns
false, then it can be said thatrecord.equals(record.original())is true.- See Also:
original(),changed(Field),changed(int),changed(String)
-
changed
boolean changed(Field<?> field)
Check if a field's value has been changed from its original as fetched from the database.- See Also:
changed(),original(Field)
-
changed
boolean changed(int fieldIndex)
Check if a field's value has been changed from its original as fetched from the database.- See Also:
changed(),original(int)
-
changed
boolean changed(String fieldName)
Check if a field's value has been changed from its original as fetched from the database.- See Also:
changed(),original(String)
-
changed
boolean changed(Name fieldName)
Check if a field's value has been changed from its original as fetched from the database.- See Also:
changed(),original(Name)
-
changed
void changed(boolean changed)
Set all of this record's internal changed flags to the supplied value.If the
changedargument isfalse, theoriginal()values will be reset to the corresponding "current" values as well
-
changed
void changed(Field<?> field, boolean changed)
Set this record's internal changed flag to the supplied value for a given field.If the
changedargument isfalse, theoriginal(Field)value will be reset to the corresponding "current" value as well- See Also:
changed(),changed(Field)
-
changed
void changed(int fieldIndex, boolean changed)Set this record's internal changed flag to the supplied value for a given field.If the
changedargument isfalse, theoriginal(int)value will be reset to the corresponding "current" value as well- See Also:
changed(),changed(int)
-
changed
void changed(String fieldName, boolean changed)
Set this record's internal changed flag to the supplied value for a given field.If the
changedargument isfalse, theoriginal(String)value will be reset to the corresponding "current" value as well- See Also:
changed(),changed(String)
-
changed
void changed(Name fieldName, boolean changed)
Set this record's internal changed flag to the supplied value for a given field.If the
changedargument isfalse, theoriginal(Name)value will be reset to the corresponding "current" value as well- See Also:
changed(),changed(Name)
-
reset
void reset()
-
reset
void reset(Field<?> field)
-
reset
void reset(int fieldIndex)
-
reset
void reset(String fieldName)
-
reset
void reset(Name fieldName)
-
intoArray
Object[] intoArray()
Convert this record into an array.The resulting array has the same number of elements as this record has fields. The resulting array contains data as such:
// For arbitrary values of i record.getValue(i) == record.intoArray()[i]
This is the same as calling
into(Object[].class)- Returns:
- This record as an array
- See Also:
fromArray(Object...)
-
intoList
List<Object> intoList()
Convert this record into a list.The resulting list has the same number of elements as this record has fields. The resulting array contains data as such:
// For arbitrary values of i record.getValue(i) == record.intoList().get(i)
This is the same as calling
Arrays.asList(intoArray())
-
intoStream
Stream<Object> intoStream()
Convert this record into a stream.The resulting stream has the same number of elements as this record has fields. The resulting stream contains data as such:
This is the same as calling
into(Stream.class)- Returns:
- This record as a stream
-
intoMap
Map<String,Object> intoMap()
Return this record as a name/value map.This is the inverse operation to
fromMap(Map)- Returns:
- This record as a map
- See Also:
fromMap(Map)
-
into
Record into(Field<?>... fields)
Copy this record into a new record holding only a subset of the previous fields.- Parameters:
fields- The fields of the new record- Returns:
- The new record
-
into
<T1> Record1<T1> into(Field<T1> field1)
Copy this record into a new record holding only a subset of the previous fields.- Returns:
- The new record
- See Also:
into(Table)
-
into
<T1,T2> Record2<T1,T2> into(Field<T1> field1, Field<T2> field2)
Copy this record into a new record holding only a subset of the previous fields.- Returns:
- The new record
- See Also:
into(Table)
-
into
<T1,T2,T3> Record3<T1,T2,T3> into(Field<T1> field1, Field<T2> field2, Field<T3> field3)
Copy this record into a new record holding only a subset of the previous fields.- Returns:
- The new record
- See Also:
into(Table)
-
into
<T1,T2,T3,T4> Record4<T1,T2,T3,T4> into(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4)
Copy this record into a new record holding only a subset of the previous fields.- Returns:
- The new record
- See Also:
into(Table)
-
into
<T1,T2,T3,T4,T5> Record5<T1,T2,T3,T4,T5> into(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5)
Copy this record into a new record holding only a subset of the previous fields.- Returns:
- The new record
- See Also:
into(Table)
-
into
<T1,T2,T3,T4,T5,T6> Record6<T1,T2,T3,T4,T5,T6> into(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6)
Copy this record into a new record holding only a subset of the previous fields.- Returns:
- The new record
- See Also:
into(Table)
-
into
<T1,T2,T3,T4,T5,T6,T7> Record7<T1,T2,T3,T4,T5,T6,T7> into(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7)
Copy this record into a new record holding only a subset of the previous fields.- Returns:
- The new record
- See Also:
into(Table)
-
into
<T1,T2,T3,T4,T5,T6,T7,T8> Record8<T1,T2,T3,T4,T5,T6,T7,T8> into(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8)
Copy this record into a new record holding only a subset of the previous fields.- Returns:
- The new record
- See Also:
into(Table)
-
into
<T1,T2,T3,T4,T5,T6,T7,T8,T9> Record9<T1,T2,T3,T4,T5,T6,T7,T8,T9> into(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9)
Copy this record into a new record holding only a subset of the previous fields.- Returns:
- The new record
- See Also:
into(Table)
-
into
<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10> Record10<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10> into(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10)
Copy this record into a new record holding only a subset of the previous fields.- Returns:
- The new record
- See Also:
into(Table)
-
into
<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11> Record11<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11> into(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11)
Copy this record into a new record holding only a subset of the previous fields.- Returns:
- The new record
- See Also:
into(Table)
-
into
<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12> Record12<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12> into(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12)
Copy this record into a new record holding only a subset of the previous fields.- Returns:
- The new record
- See Also:
into(Table)
-
into
<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13> Record13<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13> into(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13)
Copy this record into a new record holding only a subset of the previous fields.- Returns:
- The new record
- See Also:
into(Table)
-
into
<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14> Record14<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14> into(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14)
Copy this record into a new record holding only a subset of the previous fields.- Returns:
- The new record
- See Also:
into(Table)
-
into
<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15> Record15<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15> into(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15)
Copy this record into a new record holding only a subset of the previous fields.- Returns:
- The new record
- See Also:
into(Table)
-
into
<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16> Record16<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16> into(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16)
Copy this record into a new record holding only a subset of the previous fields.- Returns:
- The new record
- See Also:
into(Table)
-
into
<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17> Record17<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17> into(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17)
Copy this record into a new record holding only a subset of the previous fields.- Returns:
- The new record
- See Also:
into(Table)
-
into
<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18> Record18<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18> into(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17, Field<T18> field18)
Copy this record into a new record holding only a subset of the previous fields.- Returns:
- The new record
- See Also:
into(Table)
-
into
<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19> Record19<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19> into(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17, Field<T18> field18, Field<T19> field19)
Copy this record into a new record holding only a subset of the previous fields.- Returns:
- The new record
- See Also:
into(Table)
-
into
<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20> Record20<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20> into(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17, Field<T18> field18, Field<T19> field19, Field<T20> field20)
Copy this record into a new record holding only a subset of the previous fields.- Returns:
- The new record
- See Also:
into(Table)
-
into
<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21> Record21<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21> into(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17, Field<T18> field18, Field<T19> field19, Field<T20> field20, Field<T21> field21)
Copy this record into a new record holding only a subset of the previous fields.- Returns:
- The new record
- See Also:
into(Table)
-
into
<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22> Record22<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22> into(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17, Field<T18> field18, Field<T19> field19, Field<T20> field20, Field<T21> field21, Field<T22> field22)
Copy this record into a new record holding only a subset of the previous fields.- Returns:
- The new record
- See Also:
into(Table)
-
into
<E> E into(Class<? extends E> type) throws MappingException
Map resulting records onto a custom type.This will map this record onto your custom type using a
RecordMapperas provided byConfiguration.recordMapperProvider(). If no custom provider is specified, theDefaultRecordMapperProvideris used.- Type Parameters:
E- The generic entity type.- Parameters:
type- The entity type.- Throws:
MappingException- wrapping any reflection exception that might have occurred while mapping records- See Also:
from(Object),DefaultRecordMapper
-
into
<E> E into(E object) throws MappingExceptionMap resulting records onto a custom type.This is the same as
into(Class), except that no new object is instantiated as a result. Instead, you can provide your own custom POJO instance.- Type Parameters:
E- The generic entity type.- Parameters:
object- The receiving bean.- Throws:
MappingException- wrapping any reflection exception that might have occurred while mapping recordsNullPointerException- ifobjectisnull- See Also:
from(Object)
-
into
<R extends Record> R into(Table<R> table)
Map resulting records onto a custom record type.The mapping algorithm is this:
jOOQ will map
Recordvalues by equal field names:- For every field in the
tableargument withField.getName()"MY_field"(case-sensitive!), a corresponding field with the same name in this record will be searched. - If several fields in this record share the same
Field.getName(), then the first one returning true onField.equals(Object)will be returned. (e.g. qualified field names match)
Other restrictions
Table.getRecordType()must return a class of typeTableRecord, which must provide a default constructor. Non-public default constructors are made accessible usingConstructor.setAccessible(boolean)
- Type Parameters:
R- The generic table record type.- Parameters:
table- The table type.
- For every field in the
-
intoResultSet
ResultSet intoResultSet()
Generate an in-memory JDBCResultSetcontaining the data of thisRecord.Use this as an adapter for JDBC-compliant code that expects a
ResultSetto operate on, rather than a jOOQResult. The returnedResultSetallows for the following behaviour according to the JDBC specification:-
ResultSet.CLOSE_CURSORS_AT_COMMIT: The cursors (i.e.Statementobject) are no longer available -
ResultSet.CONCUR_READ_ONLY: You cannot update the database through thisResultSet, as the underlyingResultobject does not hold any open database refences anymore -
ResultSet.FETCH_FORWARD: The fetch direction is forward only, and cannot be changed -
ResultSet.TYPE_SCROLL_INSENSITIVE: You can use any of theResultSet's scrolling methods, e.g.ResultSet.next()orResultSet.previous(), etc.
You may use
DSLContext.fetch(ResultSet)to unwind this wrapper again.This is the same as creating a new
Resultwith thisRecordonly, and then callingResult.intoResultSet()on thatResult- Returns:
- A wrapper JDBC
ResultSet
-
-
map
<E> E map(RecordMapper<Record,E> mapper)
Map this record into a custom mapper callback.- Parameters:
mapper- The mapper callback- Returns:
- The custom mapped record
-
from
void from(Object source) throws MappingException
Load data into this record from a source.The mapping algorithm is this:
If
sourceis anarrayLoading of data is delegated to
fromArray(Object...)If
sourceis aMapLoading of data is delegated to
fromMap(Map)If
sourceis anIterableLoading of data is equivalent to loading
fromArray(Object...), transforming theIterableto an array, first.If any JPA
Columnannotations are found on theClassof the providedsource, only those are used. Matching candidates are:- Public no-argument instance methods annotated with
Column - Public no-argument instance methods starting with
getXXXorisXXX, if there exists a matching public single-argumentsetXXX()instance method that is annotated withColumn - Public instance member fields annotated with
Column
Column.name()must matchField.getName(). All other annotation attributes are ignored- Only the first match per field is used
- Matching methods have a higher priority than matching member fields
- Explicitly matching methods have a higher priority than implicitly matching methods (implicitly matching getter = setter is annotated)
- Static methods / member fields are ignored
If there are no JPA
Columnannotations, or jOOQ can't find thejavax.persistenceAPI on the classpath, jOOQ will map members by naming convention:If
Field.getName()isMY_field(case-sensitive!), then this field's value will be fetched from the first of these:- Public no-argument instance method
MY_field() - Public no-argument instance method
myField() - Public no-argument instance method
getMY_field() - Public no-argument instance method
getMyField() - Public instance member field
MY_field - Public instance member field
myField
Other restrictions
- primitive types are supported.
General notes
The resulting record will have its internal "changed" flags set to true for all values. This means that
UpdatableRecord.store()will perform anINSERTstatement. If you wish to store the record using anUPDATEstatement, useDSLContext.executeUpdate(UpdatableRecord)instead.This is the same as calling
record.from(source, record.fields())- Parameters:
source- The source object to copy data from- Throws:
MappingException- wrapping any reflection exception that might have occurred while mapping records- See Also:
into(Class),from(Object, Field...)
- Public no-argument instance methods annotated with
-
from
void from(Object source, Field<?>... fields) throws MappingException
Load data into this record from a source, providing some fields.This is the same as
from(Object), except that only fields contained in thefieldsargument will be mapped.- Parameters:
source- The source object to copy data fromfields- The record's fields to use for mapping- Throws:
MappingException- wrapping any reflection exception that might have occurred while mapping records- See Also:
into(Class),from(Object)
-
from
void from(Object source, String... fieldNames) throws MappingException
Load data into this record from a source, providing some field names.This is the same as
from(Object), except that only fields contained in thefieldNamesargument will be mapped.- Parameters:
source- The source object to copy data fromfieldNames- The record's fields names to use for mapping- Throws:
MappingException- wrapping any reflection exception that might have occurred while mapping records- See Also:
into(Class),from(Object)
-
from
void from(Object source, Name... fieldNames) throws MappingException
Load data into this record from a source, providing some field names.This is the same as
from(Object), except that only fields contained in thefieldNamesargument will be mapped.- Parameters:
source- The source object to copy data fromfieldNames- The record's fields names to use for mapping- Throws:
MappingException- wrapping any reflection exception that might have occurred while mapping records- See Also:
into(Class),from(Object)
-
from
void from(Object source, int... fieldIndexes) throws MappingException
Load data into this record from a source, providing some field indexes.This is the same as
from(Object), except that only fields contained in thefieldIndexesargument will be mapped.- Parameters:
source- The source object to copy data fromfieldIndexes- The record's fields indexes to use for mapping- Throws:
MappingException- wrapping any reflection exception that might have occurred while mapping records- See Also:
into(Class),from(Object)
-
fromMap
void fromMap(Map<String,?> map)
Load data from a map into this record.The argument map is expected to hold field-name / value pairs where field-names correspond to actual field names as provided by
field(String). Missing fields will be left untouched. Excess fields will be ignored.This is the inverse operation to
intoMap(). This is the same as callingrecord.fromMap(map, record.fields())- See Also:
intoMap(),fromMap(Map, Field...)
-
fromMap
void fromMap(Map<String,?> map, Field<?>... fields)
Load data from a map into this record, providing some fields.The argument map is expected to hold field-name / value pairs where field-names correspond to actual field names as provided by
field(String). Missing fields will be left untouched. Excess fields will be ignored.This is the same as
fromMap(Map), except that only fields contained in thefieldsargument will be mapped.- See Also:
intoMap(),fromMap(Map)
-
fromMap
void fromMap(Map<String,?> map, String... fieldNames)
Load data from a map into this record, providing some field names.The argument map is expected to hold field-name / value pairs where field-names correspond to actual field names as provided by
field(String). Missing fields will be left untouched. Excess fields will be ignored.This is the same as
fromMap(Map), except that only fields contained in thefieldNamesargument will be mapped.- See Also:
intoMap(),fromMap(Map)
-
fromMap
void fromMap(Map<String,?> map, Name... fieldNames)
Load data from a map into this record, providing some field names.The argument map is expected to hold field-name / value pairs where field-names correspond to actual field names as provided by
field(Name). Missing fields will be left untouched. Excess fields will be ignored.This is the same as
fromMap(Map), except that only fields contained in thefieldNamesargument will be mapped.- See Also:
intoMap(),fromMap(Map)
-
fromMap
void fromMap(Map<String,?> map, int... fieldIndexes)
Load data from a map into this record, providing some field indexes.The argument map is expected to hold field-name / value pairs where field-names correspond to actual field names as provided by
field(String). Missing fields will be left untouched. Excess fields will be ignored.This is the same as
fromMap(Map), except that only fields contained in thefieldIndexesargument will be mapped.- See Also:
intoMap(),fromMap(Map)
-
fromArray
void fromArray(Object... array)
Load data from an array into this record.The argument array is expected to hold values for this record's field indexes. Missing values will be left untouched. Excess values will be ignored.
This is the inverse operation to
intoArray()- See Also:
intoArray(),fromArray(Object[], Field...)
-
fromArray
void fromArray(Object[] array, Field<?>... fields)
Load data from an array into this record, providing some fields.The argument array is expected to hold values for this record's field indexes. Missing values will be left untouched. Excess values will be ignored.
This is the same as
fromArray(Object...), except that only fields contained in thefieldsargument will be mapped.- See Also:
intoArray(),fromArray(Object...)
-
fromArray
void fromArray(Object[] array, String... fieldNames)
Load data from an array into this record, providing some fields names.The argument array is expected to hold values for this record's field indexes. Missing values will be left untouched. Excess values will be ignored.
This is the same as
fromArray(Object...), except that only fields contained in thefieldNamesargument will be mapped.- See Also:
intoArray(),fromArray(Object...)
-
fromArray
void fromArray(Object[] array, Name... fieldNames)
Load data from an array into this record, providing some fields names.The argument array is expected to hold values for this record's field indexes. Missing values will be left untouched. Excess values will be ignored.
This is the same as
fromArray(Object...), except that only fields contained in thefieldNamesargument will be mapped.- See Also:
intoArray(),fromArray(Object...)
-
fromArray
void fromArray(Object[] array, int... fieldIndexes)
Load data from an array into this record, providing some fields indexes.The argument array is expected to hold values for this record's field indexes. Missing values will be left untouched. Excess values will be ignored.
This is the same as
fromArray(Object...), except that only fields contained in thefieldIndexesargument will be mapped.- See Also:
intoArray(),fromArray(Object...)
-
hashCode
int hashCode()
Get a hash code of thisRecord, based on the underlying row value expression.In order to fulfill the general contract of
Object.hashCode()andObject.equals(Object), aRecord's hash code value depends on all hash code values of thisRecord's underlying column values.- Overrides:
hashCodein classObject- Returns:
- A hash code value for this record
- See Also:
equals(Object)
-
equals
boolean equals(Object other)
Compare thisRecordwith anotherRecordfor equality.Two records are considered equal if
- They have the same degree
- For every
i BETWEEN 0 AND degree, r1[i] = r2[i]
Note, that the above rules correspond to the SQL comparison predicate behaviour as illustrated in the following example:
-- A row value expression comparison predicate SELECT * FROM my_table WHERE (1, 'A') = (1, 'A')
Unlike SQL, jOOQ allows to compare also incompatible records, e.g. records
- ... whose degrees are not equal (results in
false) - ... whose column types are not equal (results in
false) - ... whose record types are not equal (irrelevant for the result)
It can be said that for all R1, R2, if
R1.equal(R2), thenR1.compareTo(R2) == 0- Overrides:
equalsin classObject- Parameters:
other- The other record- Returns:
- Whether the two records are equal
- See Also:
compareTo(Record),hashCode()
-
compareTo
int compareTo(Record record)
Compares thisRecordwith anotherRecordaccording to their natural ordering.jOOQ Records implement
Comparableto allow for naturally ordering Records in a "SQL way", i.e. according to the following rules:Records being compared must have the same ROW type
Two Records are comparable if and only if they have the same
ROWtype, i.e. if theirfieldsRow()methods return fields of the same type and degree.Comparison rules
Assume the following notations:
X[i]meansX.getValue(i)X = YmeansX.compareTo(Y) == 0X < YmeansX.compareTo(Y) < 0X[i] = Y[i]means(X[i] == null && Y[i] == null) || X[i].compareTo(Y[i]) == 0X[i] < Y[i]meansY[i] == null || X[i].compareTo(Y[i]) < 0. This corresponds to the SQLNULLS LASTclause.
r1andr2,x = r1.compareTo(r2)yields:x = -1: if(r1[0] < r2[0]) OR (r1[0] = r2[0] AND r1[1] < r2[1]) OR ... OR (r1[0] = r2[0] AND ... AND r1[N-1] = r2[N-1] AND r1[N] < r2[N])x = 0: ifOR (r1[0] = r2[0] AND ... AND r1[N-1] = r2[N-1] AND r1[N] = r2[N])
x = 1: if(r1[0] > r2[0]) OR (r1[0] = r2[0] AND r1[1] > r2[1]) OR ... OR (r1[0] = r2[0] AND ... AND r1[N-1] = r2[N-1] AND r1[N] > r2[N])
Note, that the above rules correspond to the SQL ordering behaviour as illustrated in the following examples:
-- A SQL ORDER BY clause, ordering all records by columns in their order SELECT a, b, c FROM my_table ORDER BY 1, 2, 3 -- A row value expression comparison predicate SELECT * FROM my_table WHERE (a, b, c) < (1, 2, 3)
See
Row1.lessThan(Row1),Row2.lessThan(Row2), ...,Row22.lessThan(Row22)for more details about row value expression comparison predicatesAlternative sorting behaviour can be achieved through
Result.sortAsc(java.util.Comparator)and similar methods.- Specified by:
compareToin interfaceComparable<Record>- Throws:
NullPointerException- If the argument record isnullClassCastException- If the argument record is not comparable with this record according to the above rules.
-
getValue
<T> T getValue(Field<T> field) throws IllegalArgumentException
Get a value from this Record, providing a field.[#2211] Future versions of jOOQ might remove this method. It is recommended to use
get(Field)instead.- Throws:
IllegalArgumentException- See Also:
get(Field)
-
getValue
@Deprecated <T> T getValue(Field<T> field, T defaultValue) throws IllegalArgumentException
Deprecated.- 3.3.0 - [#2878] - This method will be removed in jOOQ 4.0Get a value from this record, providing a field.- Type Parameters:
T- The generic field parameter- Parameters:
field- The fielddefaultValue- The default value instead ofnull- Returns:
- The value of a field contained in this record, or defaultValue,
if
null - Throws:
IllegalArgumentException- If the argument field is not contained infieldsRow()
-
getValue
<T> T getValue(Field<?> field, Class<? extends T> type) throws IllegalArgumentException, DataTypeException
Get a converted value from this Record, providing a field.[#2211] Future versions of jOOQ might remove tthis method. It is recommended to use
get(Field, Class)instead.- Throws:
IllegalArgumentExceptionDataTypeException- See Also:
get(Field, Class)
-
getValue
@Deprecated <T> T getValue(Field<?> field, Class<? extends T> type, T defaultValue) throws IllegalArgumentException, DataTypeException
Deprecated.- 3.3.0 - [#2878] - This method will be removed in jOOQ 4.0Get a converted value from this record, providing a field.- Type Parameters:
T- The conversion type parameter- Parameters:
field- The fieldtype- The conversion typedefaultValue- The default value instead ofnull- Returns:
- The value of a field contained in this record, or defaultValue,
if
null - Throws:
IllegalArgumentException- If the argument field is not contained infieldsRow()DataTypeException- wrapping any data type conversion exception that might have occurred- See Also:
Convert.convert(Object, Class)
-
getValue
<T,U> U getValue(Field<T> field, Converter<? super T,? extends U> converter) throws IllegalArgumentException, DataTypeException
Get a converted value from this Record, providing a field.[#2211] Future versions of jOOQ might remove this method. It is recommended to use
get(Field, Converter)instead.- Throws:
IllegalArgumentExceptionDataTypeException- See Also:
get(Field, Converter)
-
getValue
@Deprecated <T,U> U getValue(Field<T> field, Converter<? super T,? extends U> converter, U defaultValue) throws IllegalArgumentException, DataTypeException
Deprecated.- 3.3.0 - [#2878] - This method will be removed in jOOQ 4.0Get a converted value from this record, providing a field.- Type Parameters:
T- The database type parameterU- The conversion type parameter- Parameters:
field- The fieldconverter- The data type converterdefaultValue- The default value instead ofnull- Returns:
- The value of a field contained in this record, or defaultValue,
if
null - Throws:
IllegalArgumentException- If the argument field is not contained infieldsRow()DataTypeException- wrapping any data type conversion exception that might have occurred- See Also:
Convert.convert(Object, Converter)
-
getValue
Object getValue(String fieldName) throws IllegalArgumentException
Get a value from this Record, providing a field name.[#2211] Future versions of jOOQ might remove this method. It is recommended to use
get(String)instead.- Throws:
IllegalArgumentException- See Also:
get(String)
-
getValue
@Deprecated Object getValue(String fieldName, Object defaultValue) throws IllegalArgumentException
Deprecated.- 3.3.0 - [#2878] - This method will be removed in jOOQ 4.0Get a value from this record, providing a field name.- Parameters:
fieldName- The field's namedefaultValue- The default value instead ofnull- Returns:
- The value of a field's name contained in this record, or
defaultValue, if
null - Throws:
IllegalArgumentException- If the argument fieldName is not contained in the record
-
getValue
<T> T getValue(String fieldName, Class<? extends T> type) throws IllegalArgumentException, DataTypeException
Get a converted value from this Record, providing a field name.[#2211] Future versions of jOOQ might remove this method. It is recommended to use
get(String, Class)instead.- Throws:
IllegalArgumentExceptionDataTypeException- See Also:
get(String, Class)
-
getValue
@Deprecated <T> T getValue(String fieldName, Class<? extends T> type, T defaultValue) throws IllegalArgumentException, DataTypeException
Deprecated.- 3.3.0 - [#2878] - This method will be removed in jOOQ 4.0Get a converted value from this record, providing a field name.- Type Parameters:
T- The conversion type parameter- Parameters:
fieldName- The field's nametype- The conversion typedefaultValue- The default value instead ofnull- Returns:
- The value of a field's name contained in this record, or
defaultValue, if
null - Throws:
IllegalArgumentException- If the argument fieldName is not contained in the recordDataTypeException- wrapping any data type conversion exception that might have occurred- See Also:
Convert.convert(Object, Class)
-
getValue
<U> U getValue(String fieldName, Converter<?,? extends U> converter) throws IllegalArgumentException, DataTypeException
Get a converted value from this Record, providing a field name.[#2211] Future versions of jOOQ might remove this method. It is recommended to use
get(String, Converter)instead.- Throws:
IllegalArgumentExceptionDataTypeException- See Also:
get(String, Converter)
-
getValue
@Deprecated <U> U getValue(String fieldName, Converter<?,? extends U> converter, U defaultValue) throws IllegalArgumentException, DataTypeException
Deprecated.- 3.3.0 - [#2878] - This method will be removed in jOOQ 4.0Get a converted value from this record, providing a field name.- Type Parameters:
U- The conversion type parameter- Parameters:
fieldName- The field's nameconverter- The data type converterdefaultValue- The default value instead ofnull- Returns:
- The value of a field's name contained in this record, or
defaultValue, if
null - Throws:
IllegalArgumentException- If the argument fieldName is not contained in the recordDataTypeException- wrapping any data type conversion exception that might have occurred- See Also:
Convert.convert(Object, Converter)
-
getValue
Object getValue(Name fieldName) throws IllegalArgumentException
Get a value from this Record, providing a field name.[#2211] Future versions of jOOQ might remove this method. It is recommended to use
get(Name)instead.- Throws:
IllegalArgumentException- See Also:
get(Name)
-
getValue
<T> T getValue(Name fieldName, Class<? extends T> type) throws IllegalArgumentException, DataTypeException
Get a converted value from this Record, providing a field name.[#2211] Future versions of jOOQ might remove this method. It is recommended to use
get(Name, Class)instead.- Throws:
IllegalArgumentExceptionDataTypeException- See Also:
get(Name, Class)
-
getValue
<U> U getValue(Name fieldName, Converter<?,? extends U> converter) throws IllegalArgumentException, DataTypeException
Get a converted value from this Record, providing a field name.[#2211] Future versions of jOOQ might remove this method. It is recommended to use
get(Name, Converter)instead.- Throws:
IllegalArgumentExceptionDataTypeException- See Also:
get(Name, Converter)
-
getValue
Object getValue(int index) throws IllegalArgumentException
Get a value from this record, providing a field index.[#2211] Future versions of jOOQ might remove this method. It is recommended to use
get(int)instead.- Throws:
IllegalArgumentException- See Also:
get(int)
-
getValue
@Deprecated Object getValue(int index, Object defaultValue) throws IllegalArgumentException
Deprecated.- 3.3.0 - [#2878] - This method will be removed in jOOQ 4.0Get a value from this record, providing a field index.- Parameters:
index- The field's indexdefaultValue- The default value instead ofnull- Returns:
- The value of a field's index contained in this record, or
defaultValue, if
null - Throws:
IllegalArgumentException- If the argument index is not contained in the record
-
getValue
<T> T getValue(int index, Class<? extends T> type) throws IllegalArgumentException, DataTypeExceptionGet a converted value from this record, providing a field index.[#2211] Future versions of jOOQ might remove this method. It is recommended to use
get(int, Class)instead.- Throws:
IllegalArgumentExceptionDataTypeException- See Also:
get(int, Class)
-
getValue
@Deprecated <T> T getValue(int index, Class<? extends T> type, T defaultValue) throws IllegalArgumentException, DataTypeException
Deprecated.- 3.3.0 - [#2878] - This method will be removed in jOOQ 4.0Get a converted value from this record, providing a field index.- Type Parameters:
T- The conversion type parameter- Parameters:
index- The field's indextype- The conversion typedefaultValue- The default value instead ofnull- Returns:
- The value of a field's index contained in this record, or
defaultValue, if
null - Throws:
IllegalArgumentException- If the argument index is not contained in the recordDataTypeException- wrapping data type conversion exception that might have occurred- See Also:
Convert.convert(Object, Class)
-
getValue
<U> U getValue(int index, Converter<?,? extends U> converter) throws IllegalArgumentException, DataTypeExceptionGet a converted value from this record, providing a field index.[#2211] Future versions of jOOQ might remove this method. It is recommended to use
get(int, Converter)instead.- Throws:
IllegalArgumentExceptionDataTypeException- See Also:
get(int, Converter)
-
getValue
@Deprecated <U> U getValue(int index, Converter<?,? extends U> converter, U defaultValue) throws IllegalArgumentException, DataTypeException
Deprecated.- 3.3.0 - [#2878] - This method will be removed in jOOQ 4.0Get a converted value from this record, providing a field index.- Type Parameters:
U- The conversion type parameter- Parameters:
index- The field's indexconverter- The data type converterdefaultValue- The default value instead ofnull- Returns:
- The value of a field's index contained in this record, or
defaultValue, if
null - Throws:
IllegalArgumentException- If the argument index is not contained in the recordDataTypeException- wrapping data type conversion exception that might have occurred- See Also:
Convert.convert(Object, Converter)
-
setValue
<T> void setValue(Field<T> field, T value)
Set a value into this record.[#2211] Future versions of jOOQ might remove this method. It is recommended to use
set(Field, Object)instead.- See Also:
set(Field, Object)
-
setValue
<T,U> void setValue(Field<T> field, U value, Converter<? extends T,? super U> converter)
Set a value into this record.[#2211] Future versions of jOOQ might remove this method. It is recommended to use
set(Field, Object, Converter)instead.- See Also:
set(Field, Object, Converter)
-
-