rebased on factory.result interface
add more property type to entityType
add type parameter to getProperty
switch Serializable from scala to java