CRUD с использованием Hibernate, но без каких-либо сущностей - PullRequest
3 голосов
/ 28 сентября 2011

Возможно ли это сделать?Я знаю, что Hibernate - это инструмент ORM, который отображает объекты в таблицы в базе данных.Таким образом, нам нужно, чтобы сущности выполняли CRUD для соответствующих таблиц.

Но в нашем приложении сущности будут динамическими, т. Е. Пользователь Admin может создавать личность, местоположение формируется динамически, а затем таблицы также будут генерироваться динамически вбаза данных.

Можем ли мы сделать это с помощью гибернации или нам придется использовать для этого простой JDBC?Мы не хотим использовать JDBC, поскольку хотим, чтобы наше приложение работало на разных базах данных, таких как Mysql, mssql и oracle.

Пожалуйста, помогите.

Ответы [ 3 ]

2 голосов
/ 06 октября 2011

Использование Hibernate без сущностей возможно. Посмотреть здесь: http://docs.jboss.org/hibernate/core/3.3/reference/en/html/persistent-classes.html#persistent-classes-dynamicmodels

2 голосов
/ 28 сентября 2011

Это невозможно, и я даже не представляю, как это должно работать. Если честно, весь дизайн вашего приложения кажется подозрительным, но не берите в голову.

Hibernate относится к объектам - если вы заранее не знаете структуру таблицы, вы не можете создавать объекты, сопоставленные с этими таблицами, и не можете их использовать. Вместо этого вы можете использовать карты (column -> value), но этот подход не поддерживается Hibernate.

Таким образом, вам нужно вернуться к JDBC (но громко крича, используйте абстракции, такие как MyBatis или JdbcTemplate ), поскольку Hibernate не поддерживает такой подход.

0 голосов
/ 28 сентября 2011

Реляционные базы данных плохо адаптированы для этого варианта использования. Вам может быть лучше с некоторым хранением ключей / nosql soltuion

...