mirror of
https://github.com/Kingsrook/qqq.git
synced 2025-07-18 13:10:44 +00:00
CE-938 add isPrimaryKey to @QField
This commit is contained in:
@ -49,6 +49,11 @@ public @interface QField
|
|||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
String backendName() default "";
|
String backendName() default "";
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
**
|
||||||
|
*******************************************************************************/
|
||||||
|
boolean isPrimaryKey() default false;
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
**
|
**
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
@ -111,6 +111,7 @@ public class QTableMetaData implements QAppChildMetaData, Serializable, MetaData
|
|||||||
private ShareableTableMetaData shareableTableMetaData;
|
private ShareableTableMetaData shareableTableMetaData;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
** Default constructor.
|
** Default constructor.
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
@ -158,11 +159,26 @@ public class QTableMetaData implements QAppChildMetaData, Serializable, MetaData
|
|||||||
public QTableMetaData withFieldsFromEntity(Class<? extends QRecordEntity> entityClass) throws QException
|
public QTableMetaData withFieldsFromEntity(Class<? extends QRecordEntity> entityClass) throws QException
|
||||||
{
|
{
|
||||||
List<QRecordEntityField> recordEntityFieldList = QRecordEntity.getFieldList(entityClass);
|
List<QRecordEntityField> recordEntityFieldList = QRecordEntity.getFieldList(entityClass);
|
||||||
|
|
||||||
|
boolean setPrimaryKey = false;
|
||||||
|
|
||||||
for(QRecordEntityField recordEntityField : recordEntityFieldList)
|
for(QRecordEntityField recordEntityField : recordEntityFieldList)
|
||||||
{
|
{
|
||||||
QFieldMetaData field = new QFieldMetaData(recordEntityField.getGetter());
|
QFieldMetaData field = new QFieldMetaData(recordEntityField.getGetter());
|
||||||
addField(field);
|
addField(field);
|
||||||
|
|
||||||
|
if(recordEntityField.getFieldAnnotation().isPrimaryKey())
|
||||||
|
{
|
||||||
|
if(setPrimaryKey)
|
||||||
|
{
|
||||||
|
throw (new QException("Attempt to set more than one field as primary key (" + primaryKeyField + "," + field.getName() + ")."));
|
||||||
|
}
|
||||||
|
|
||||||
|
setPrimaryKeyField(field.getName());
|
||||||
|
setPrimaryKey = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return (this);
|
return (this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1388,6 +1404,7 @@ public class QTableMetaData implements QAppChildMetaData, Serializable, MetaData
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
** Getter for shareableTableMetaData
|
** Getter for shareableTableMetaData
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
@ -1417,5 +1434,4 @@ public class QTableMetaData implements QAppChildMetaData, Serializable, MetaData
|
|||||||
return (this);
|
return (this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user