44import java .util .ArrayList ;
55import java .util .Collections ;
66import java .util .List ;
7+
78import com .google .gson .Gson ;
9+
810import Android .Zone .Sqlite .Sqlite_Helper .AddColumnStatue ;
911import Android .Zone .Sqlite .Annotation .utils .AnUtils ;
1012import Android .Zone .Sqlite .GsonEntity .GsonColumn ;
1517import Android .Zone .Sqlite .TableEntity .TableEntity ;
1618import Android .Zone .Utils .SharedUtils ;
1719import Java .Zone .Log .PrintUtils ;
20+ import Java .Zone .Utils .FieldTypeUtils ;
21+ import Java .Zone .Utils .FieldTypeUtils .FieldType ;
1822import android .content .Context ;
1923import android .database .sqlite .SQLiteDatabase ;
2024//TODO 实体类id字段的设计 实体类中包含实体类的操作
@@ -447,7 +451,7 @@ public <T> void dropTableByClass(Class<T> t){
447451 }
448452
449453 }
450- public <T > void createTableByEntity (Class <T > t ){
454+ private <T > void createTableByEntity (Class <T > t ){
451455 boolean suceess = helper .createTableByEntity (t , getTranDatabase ());
452456 if (printLog ) {
453457 System .out .println ("表:" + AnUtils .getTableAnnoName (t ) + "\t 创建陈功了吗" + suceess );
@@ -467,9 +471,32 @@ public <T> void createTableByEntity(Class<T> t){
467471 @ SuppressWarnings ({ "unchecked" , "rawtypes" })
468472 public <T > void createTableByList (List <Class > classList ){
469473 for (Class class1 : classList ) {
470- createTableByEntity (class1 );
474+ createTableByClass (class1 );
475+ }
476+ }
477+ public <T > void createTableByClass (Class <T > t ){
478+ Field [] fields = t .getDeclaredFields ();
479+ createTableByEntity (t );
480+ for (Field field2 : fields ) {
481+ FieldType entity = FieldTypeUtils .getFieldType (field2 );
482+ switch (entity .fieldProperty ) {
483+ case CLASS :
484+ case LIST_CLASS :
485+ try {
486+ createTableByClass (Class .forName (entity .classStr ));
487+ } catch (ClassNotFoundException e ) {
488+ e .printStackTrace ();
489+ }
490+ break ;
491+ default :
492+ break ;
493+ }
471494 }
495+
496+
497+
472498 }
499+
473500 public <T > void addColumn (Class <T > t ,String willAddColumnStr ,String length ){
474501 AddColumnStatue temp = helper .addColumn (t , willAddColumnStr ,length ,getTranDatabase ());
475502 if (temp ==AddColumnStatue .Success ){
0 commit comments