package org.labkey.gringottstest.model;

import org.labkey.api.data.Container;
import org.labkey.api.security.User;
import org.labkey.gringotts.api.annotation.SerializeField;
import org.labkey.gringotts.api.exception.InvalidVaultException;
import org.labkey.gringotts.api.exception.RecordNotFoundException;
import org.labkey.gringotts.api.model.Vault;

/**
 * Created by jon on 11/13/16.
 */
public class EmployeeVault extends PersonVault<EmployeeVault.Employee> {
    public EmployeeVault(Container c, User user) throws InvalidVaultException {
        super(c, user);
    }

    @Override
    public String getDisplayName() {
        return "Employees";
    }

    public class Employee extends PersonVault.Person {
        public Employee() {
            super();
        }

        public Employee(String id) throws InvalidVaultException, RecordNotFoundException {
            super(id);
        }

        @SerializeField
        public EmployeeTypes employeeType = EmployeeTypes.FULL_TIME;
    }
}

@@ -887,32 +887,321 @@
 id);%0A        %7D%0A%0A
+        /*%0A         * Note here that we can't just assign here. The class body gets executed after the call to%0A         * super() but before the rest of the constructor body, so not checking for null overrides%0A         * any value that might have been bound from the database.%0A         */%0A
         @Seriali
@@ -1251,16 +1251,46 @@
 eeType =
+ (this.employeeType == null) ?
  Employe
@@ -1305,16 +1305,36 @@
 ULL_TIME
+ : this.employeeType
 ;%0A    %7D%0A

Make adjustment to test.