Карта аннотации в спящем режиме? - PullRequest
1 голос
/ 03 апреля 2011

Какая аннотация должна идти в поле creditBalances класса User?

таблица кредитных_балансов

CREATE TABLE `credit_balance` (
  `user_id` varchar(255) NOT NULL,
  `currency` char(3) DEFAULT NULL,
  `amount` decimal(12,4) DEFAULT NULL
)

Кредитный класс

@Embeddable
public class Credit {
  @Column(name="currency", columnDefinition="CHAR(3)", nullable=false)
  Currency currency;
  @Column(name="amount", columnDefinition="DECIMAL(12,4)", nullable=false)
  BigDecimal amount;
}

Класс пользователя

@Entity
public class User {
  @Id
  String id;

  //What annotation goes here?
  Map<Currency, Credit> creditBalances;
}

Мы используем Hibernate 3.4.

Я просмотрел http://docs.jboss.org/hibernate/annotations/3.4/reference/en/html/entity.html#entity-mapping-association-collections, но быстро заблудился.

Уточнение: столбец currency следует использовать как для ключа карты, так и для поля валюты объекта Credit.

Возможно ли это в Hibernate?

1 Ответ

0 голосов
/ 03 апреля 2011

Это один вариант, который я использую.Обычно используются аннотации @ElementCollection или @ManyToMany, остальные являются ситуативными.

@ElementCollection
@Column(name = "value", nullable=false)
@MapKeyColumn(name="name")
@JoinTable(name = "from_to", joinColumns = @JoinColumn(name = "to_id"))
Map<String, String>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...