Я использую JPA, и я должен сделать "имя таблицы" переменной.
В базе данных у меня есть много таблиц, и мой код должен получить доступ к таблице, где я указываю его для чтения.
@Entity
@Table(name = "tableName")
public class Database implements Serializable {...............}
Какие-либо идеи?
Вы можете сделать что-то вроде этого, если это вас беспокоит, я думаю. Никогда не пробовал, просто безумное предположение . Но это обычная практика - я следую именованным запросам; да, это совсем другое дело.
@Entity
@Table(name = Database.tableName)
public class Database implements Serializable {
public static final String tableName = "TABLE_1";
...............
}
Но я не понимаю, зачем кому-то это делать. Не могли бы вы рассказать нам, чем вы занимаетесь? Почему у вас есть несколько таблиц с точно таким же определением?
[Отредактировано]
Я попробовал ваше решение. Это не помогло , в нем говорится: значение атрибута аннотации Table.name должно быть постоянным выражением.
Так разве это недостаточно ясно? Я имею в виду, что ты не можешь этого сделать. И считаю это вполне логичным.Если вы хотите, чтобы Hibernate генерировал вашу схему, вы можете определить все нужные вам сущности в схеме и с соответствующими отношениями.
Указать имя таблицы во время выполнения невозможно, JPA просто не работает (и я все еще не уверен, что получу ваше требование). Либо сопоставьте различные объекты в вашем наборе таблиц и выполните различные запросы, либо создайте их динамически (возможно, с использованием Criteria API) в зависимости от ввода со стороны клиента или используйте что-то еще, кроме JPA (например, iBATIS).