You're correct, the table creation would be triggered automatically on Cache start, however the Caches are started lazily by default. There is an EAGER start option:
<cache-container
name="hibernateSearch"
default-cache="LuceneIndexesData"
jndi-name="java:jboss/infinispan/hibernateSearch"
start="EAGER">
<transport lock-timeout="60000" />
<replicated-cache name="LuceneIndexesMetadata"
mode="SYNC"
start="EAGER">
<binary-keyed-jdbc-store
datasource="java:jboss/datasources/PicketLinkDatasource"
shared="true"
passivation="false"
purge="false">
<property name="createTableOnStart">true</property>
<binary-keyed-table>
<id-column name="ID_COLUMN" type="VARCHAR(255)" />
<data-column name="DATUM" type="BLOB" />
</binary-keyed-table>
</binary-keyed-jdbc-store>
</replicated-cache>
<replicated-cache name="LuceneIndexesData"
mode="SYNC"
start="EAGER">
<binary-keyed-jdbc-store
datasource="java:jboss/datasources/PicketLinkDatasource"
shared="true"
passivation="false"
purge="false">
<property name="createTableOnStart">true</property>
<binary-keyed-table>
<id-column name="ID_COLUMN" type="VARCHAR(255)" />
<data-column name="DATUM" type="BLOB" />
</binary-keyed-table>
</binary-keyed-jdbc-store>
</replicated-cache>
<replicated-cache name="LuceneIndexesLocking"
mode="SYNC"
start="EAGER" />
</cache-container>
I also removed the CacheStore for the LuceneIndexesLocking Cache as you shouldn't use one.