예제 #1
0
 private void createTable(EntityMeta entityMeta, String tableName) {
   CQLTableBuilder builder = CQLTableBuilder.createTable(tableName);
   for (PropertyMeta pm : entityMeta.getAllMetasExceptIdMeta()) {
     String propertyName = pm.getPropertyName();
     Class<?> keyClass = pm.getKeyClass();
     Class<?> valueClass = pm.getValueClass();
     switch (pm.type()) {
       case SIMPLE:
       case LAZY_SIMPLE:
         builder.addColumn(propertyName, valueClass);
         break;
       case LIST:
       case LAZY_LIST:
         builder.addList(propertyName, valueClass);
         break;
       case SET:
       case LAZY_SET:
         builder.addSet(propertyName, valueClass);
         break;
       case MAP:
       case LAZY_MAP:
         builder.addMap(propertyName, keyClass, pm.getValueClass());
         break;
       case JOIN_SIMPLE:
         builder.addColumn(propertyName, pm.joinIdMeta().getValueClass());
         break;
       case JOIN_LIST:
         builder.addList(propertyName, pm.joinIdMeta().getValueClass());
         break;
       case JOIN_SET:
         builder.addSet(propertyName, pm.joinIdMeta().getValueClass());
         break;
       case JOIN_MAP:
         builder.addMap(propertyName, keyClass, pm.joinIdMeta().getValueClass());
         break;
       default:
         break;
     }
   }
   buildPrimaryKeys(entityMeta.getIdMeta(), builder);
   builder.addComment("Create table for entity '" + entityMeta.getClassName() + "'");
   session.execute(builder.generateDDLScript());
 }