Be stricter about our primary key requirements here.
This commit is contained in:
@@ -400,7 +400,6 @@ public class DepotMarshaller<T extends PersistentRecord>
|
|||||||
{
|
{
|
||||||
if (requireKey) {
|
if (requireKey) {
|
||||||
checkHasPrimaryKey();
|
checkHasPrimaryKey();
|
||||||
|
|
||||||
} else if (!hasPrimaryKey()) {
|
} else if (!hasPrimaryKey()) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -453,7 +452,7 @@ public class DepotMarshaller<T extends PersistentRecord>
|
|||||||
*/
|
*/
|
||||||
public Key<T> makePrimaryKey (Comparable<?> value)
|
public Key<T> makePrimaryKey (Comparable<?> value)
|
||||||
{
|
{
|
||||||
checkHasPrimaryKey();
|
checkHasNonCompositePrimaryKey();
|
||||||
return new Key<T>(_pClass, new Comparable<?>[] { value });
|
return new Key<T>(_pClass, new Comparable<?>[] { value });
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -462,7 +461,7 @@ public class DepotMarshaller<T extends PersistentRecord>
|
|||||||
*/
|
*/
|
||||||
public Function<Comparable<?>, Key<T>> primaryKeyFunction ()
|
public Function<Comparable<?>, Key<T>> primaryKeyFunction ()
|
||||||
{
|
{
|
||||||
checkHasPrimaryKey();
|
checkHasNonCompositePrimaryKey();
|
||||||
return new Function<Comparable<?>, Key<T>>() {
|
return new Function<Comparable<?>, Key<T>>() {
|
||||||
public Key<T> apply (Comparable<?> value) {
|
public Key<T> apply (Comparable<?> value) {
|
||||||
return new Key<T>(_pClass, new Comparable<?>[] { value });
|
return new Key<T>(_pClass, new Comparable<?>[] { value });
|
||||||
@@ -1002,9 +1001,6 @@ public class DepotMarshaller<T extends PersistentRecord>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Check to see if we have a primary key, otherwise throw an UnsupportedOperationException.
|
|
||||||
*/
|
|
||||||
protected void checkHasPrimaryKey ()
|
protected void checkHasPrimaryKey ()
|
||||||
{
|
{
|
||||||
if (!hasPrimaryKey()) {
|
if (!hasPrimaryKey()) {
|
||||||
@@ -1013,6 +1009,14 @@ public class DepotMarshaller<T extends PersistentRecord>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void checkHasNonCompositePrimaryKey ()
|
||||||
|
{
|
||||||
|
if (_pkColumns == null || _pkColumns.size() != 1) {
|
||||||
|
throw new UnsupportedOperationException(
|
||||||
|
getClass().getName() + " does not define a single column primary key");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
protected static class TableMetaData
|
protected static class TableMetaData
|
||||||
{
|
{
|
||||||
public boolean tableExists;
|
public boolean tableExists;
|
||||||
|
|||||||
Reference in New Issue
Block a user