public JdbcConfiguration build() { if (entityInfo == null) { JpaEntityInspector inspector = new JpaEntityInspector(clazz); entityInfo = inspector.inspect(); } JdbcConfiguration conf = new JdbcConfiguration(); conf.autocommit = this.autocommit; conf.batchSize = this.batchSize; conf.entityInfo = this.entityInfo; return conf; } }
public JpaEntityInspector(Class<?> entityClass) { try { Class.forName("javax.persistence.Entity"); } catch (ClassNotFoundException e) { logger.error("javax.persistence dependency not found. Add it to your project " + "https://mvnrepository.com/artifact/javax.persistence/persistence-api/1.0.2 " + "or configure the entity with org.jfleet.EntityInfoBuilder"); throw new RuntimeException("javax.persistence dependency not found. Add it to your project " + "or configure the entity with org.jfleet.EntityInfoBuilder"); } this.entityClass = entityClass; ensureHasEntity(); }
@Test public void entityMustBeAnnotated() { assertThrows(RuntimeException.class, () -> { new JpaEntityInspector(SimpleClass.class); }); }
public EntityInfo inspect() { JpaFieldsInspector fieldsInspector = new JpaFieldsInspector(); List<FieldInfo> fieldsFromClass = fieldsInspector.getFieldsFromClass(entityClass); EntityFieldAccesorFactory factory = new EntityFieldAccesorFactory(); List<ColumnInfo> columns = fieldsFromClass.stream().map(field -> { Function<Object, Object> accessor = factory.getAccessor(entityClass, field.getFieldName()); return new ColumnInfo(field.getColumnName(), field.getFieldType(), accessor); }).collect(Collectors.toList()); return new EntityInfo(entityClass, getTableName(), columns); }
public PgCopyConfiguration build() { if (entityInfo == null) { JpaEntityInspector inspector = new JpaEntityInspector(clazz); entityInfo = inspector.inspect(); } PgCopyConfiguration conf = new PgCopyConfiguration(); conf.autocommit = this.autocommit; conf.batchSize = this.batchSize; conf.concurrent = this.concurrent; conf.entityInfo = this.entityInfo; return conf; } }
public LoadDataConfiguration build() { if (entityInfo == null) { JpaEntityInspector inspector = new JpaEntityInspector(clazz); entityInfo = inspector.inspect(); } LoadDataConfiguration conf = new LoadDataConfiguration(); conf.autocommit = this.autocommit; conf.batchSize = this.batchSize; conf.concurrent = this.concurrent; conf.encoding = this.encoding; conf.entityInfo = this.entityInfo; conf.errorOnMissingRow = this.errorOnMissingRow; return conf; } }
private EntityInfo getEntityInfo(CsvConfiguration<T> config) { EntityInfo entityInfo = config.getEntityInfo(); if (entityInfo != null) { return entityInfo; } return new JpaEntityInspector(config.getClazz()).inspect(); }
@Test public void inspectTableNameByEntityName() { JpaEntityInspector inspector = new JpaEntityInspector(SimpleEntityUnannotated.class); EntityInfo entityInfo = inspector.inspect(); assertEquals("simpleentityunannotated", entityInfo.getTableName()); }
@Test public void inspectTableNameByTableAnnotation() { JpaEntityInspector inspector = new JpaEntityInspector(SimpleEntityAnnotated.class); EntityInfo entityInfo = inspector.inspect(); assertEquals("simple_entity", entityInfo.getTableName()); }
@Test public void inspectGetClass() { JpaEntityInspector inspector = new JpaEntityInspector(SimpleEntityUnannotated.class); EntityInfo entityInfo = inspector.inspect(); assertEquals(SimpleEntityUnannotated.class, entityInfo.getEntityClass()); }
public static void createTableForEntity(Connection conn, Class<?> clazz) throws SQLException { JpaEntityInspector inspector = new JpaEntityInspector(clazz); EntityInfo entityInfo = inspector.inspect(); Dialect dialect = getDialect(conn); DDLHelper ddlHelper = dialect.getDDLHelper(); try (Statement stmt = conn.createStatement()) { String dropTableSql = ddlHelper.dropTableSentence(entityInfo); logger.info("Droping table: " + dropTableSql); stmt.execute(dropTableSql); String createTableSql = ddlHelper.createTableSentence(entityInfo); logger.info("Creating table: " + createTableSql); stmt.execute(createTableSql); } }