@Override public <T> List<T> getValueObjects() { List<T> valueObjects = new ArrayList<T>(); for(Value value : values) { valueObjects.add((T)value.getValue()); } return valueObjects; }
@Override public Object getFirstValueObject() { return getFirstValue().getValue(); }
@Override public Object mapFromProperty(PropertyMetadata propertyMetadata, Property property) { EntityValue entityValue = (EntityValue) property.getFirstValue(); Entity embeddedEntity = entityValue.getValue(); List<Property> embeddedProperties = embeddedEntity.getProperties(); Map<String, Object> properties = new HashMap<>(); embeddedProperties.forEach(p -> { properties.put(p.getPropertyName(), p.getFirstValue().getValue()); }); return properties; } }
@Test public void testPersistMultiValue() throws Exception { DBSession session = sessionFactory.createSession(); EntityBag bag = session.createOrGetBag("testbag"); try { Entity entity = new SimpleEntity(); entity.addProperty("field1", "value1"); entity.addProperty("field1", "value2"); entity.addProperty("field1", "value3"); entity.addProperty("number", 100L); entity.addProperty("number", 500L); bag.addEntity(entity); String entityId = entity.getInternalId(); entity = bag.getEntity(entityId); Property property = entity.getProperty("field1"); Assert.assertNotNull(property); assertEquals("The object should be multivalue", true, property.isMultiValue()); assertEquals("There should be three properties", 3, property.getValues().size()); assertEquals("Unexpected value", "value1", property.getValues().get(0).getValue()); assertEquals("Unexpected value", "value2", property.getValues().get(1).getValue()); assertEquals("Unexpected value", "value3", property.getValues().get(2).getValue()); property = entity.getProperty("number"); assertEquals("The object should be multivalue", true, property.isMultiValue()); assertEquals("There should be three properties", 2, property.getValues().size()); assertEquals("Unexpected value", 100L, property.getValues().get(0).getValue()); assertEquals("Unexpected value", 500L, property.getValues().get(1).getValue()); } finally { JasDBMain.shutdown(); } }
assertEquals(new Long(100), foundEntity.getProperty("simpleProperty1").getFirstValueObject()); assertEquals(3, foundEntity.getProperty("multiValueProperty").getValues().size()); assertEquals("value1", foundEntity.getProperty("multiValueProperty").getValues().get(0).getValue()); assertEquals("value2", foundEntity.getProperty("multiValueProperty").getValues().get(1).getValue()); assertEquals("value3", foundEntity.getProperty("multiValueProperty").getValues().get(2).getValue()); assertEquals(new Long(200), foundEntity.getProperty("integerProperty").getFirstValueObject()); assertTrue(embeddedEntity.hasProperty("embeddedString")); assertTrue(embeddedEntity.hasProperty("embeddedMultivalue")); assertEquals(50L, embeddedEntity.getProperty("embeddedProperty1").getValues().get(0).getValue()); assertEquals(60L, embeddedEntity.getProperty("embeddedProperty1").getValues().get(1).getValue()); assertEquals(70L, embeddedEntity.getProperty("embeddedProperty1").getValues().get(2).getValue()); assertEquals("simpleStringValue", embeddedEntity.getProperty("embeddedString").getFirstValueObject()); assertEquals("emValue1", embeddedEntity.getProperty("embeddedMultivalue").getValues().get(0).getValue()); assertEquals("emValue2", embeddedEntity.getProperty("embeddedMultivalue").getValues().get(1).getValue()); assertEquals("emValue3", embeddedEntity.getProperty("embeddedMultivalue").getValues().get(2).getValue());