Необходимо автоматизировать запись объектов в БД. Есть несколько POJO. Необходимо организовать их запись в реляционную БД таким образом, что бы название таблицы можно было задавать из программы. Если бы не последнее требование — использовал бы JPA. Существуют ли какие-нибудь фрейворки, позволящие автоматизировать процес написания инсертов или что-то в этом роде?
Another option I can think of would be to use a database synonym / alias: FOO would be an alias for FOO_JAN2010 until… you change the alias to point on FOO_FEB2010. I've never tested this, I don't know if it will suit your needs. But it's another idea.
Взято отсюда. А алиас можно менять динамически из программы (например, по расписанию). Правда нужно помнить что JPA может использовать кеширование, создавать тригеры на таблицы и т.д.
Пришло в голову следующее костыльное решение:
В Hibernate конфигурацию можно создавать с помощью класса Configuration — и импортировать маппинг с помощью addInputStream(InputStream xmlInputStream) , и при этом данные маппинга генерировать с помощью какого-нибудь шаблонизатора.
А зачем это нужно? Если меняется дата, не проще ли создать колонку DATE и писать дату туда? А если так хочется отдельные таблицы, можно насоздавать View с условиями по DATE
Дата, безусловно, пишется. Такое разделение нужно что бы не перегружать таблицу. Например, если нужно писать логи запросов в базу, то такой шардинг довольно удобен.
Я предпочитаю по максимуму использовать СУБД-независимые решения. Сегодня mysql, завтра — postfresql а то и вовсе oracle. И так миграция — не простая штука. А если еще на специфику сильно опираться — вообще вилы.
Мне кажется, вы не совсем верно выбираете инструмент. Если нужно писать терабайтные логи, то реляционная база данных — не лучшее решение. Лучше использовать Cassandra либо HDFS. Если же логи не сильно большие, то подойдет одна таблица; шардинг, в этом случае, ложится на плечи DBA.
Может быть. Но заказчик требует реляционную базу. Я сам давно хочу для этих целей применить какую-нибудь современную NoSQL. Даже mongodb-appender для log4j написал.