какой-то спящий вопрос - PullRequest
0 голосов
/ 19 июля 2009

у меня 2 вопроса Я хочу создать таблицу Mysql, в которой есть кодировка utf8, но я не знаю, где мне задать настройку. (У меня просто hibernate.cfg.XMl нет никакого XML-файла для спящего режима) я хочу установить в файле mysql.ini, что настройкой по умолчанию было UTF-8. Я хочу добавить эту настройку в спящий режим.

второй Вопрос: У меня есть эта таблица:

CREATE TABLE `buildingtel` (
`username` varchar(50) NOT NULL,
`buildingname` varchar(50) NOT NULL,
`tel` varchar(15) NOT NULL,
PRIMARY KEY (`username`,`buildingname`,`tel`),
KEY `FK_buildingtel_2` (`buildingname`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Как я могу сопоставить их и сущность Java Я могу сделать так:

@Entity
@Table(name = "btel")
public class Btel {

@Id
@GeneratedValue
@Column(name = "id")
private int id;;
@Column(name = "username", length=50)
private String username;
@Column(name = "buildingname", length=50)
private int buildingname;
@Column(name = "tel", length=15)
private int tel;
//some setter & getter
}

но я хочу установить (username, buildingname, tel) вместе как первичный ключ, как я могу сделать это с помощью аннотации в спящем режиме

TanX заранее

1 Ответ

1 голос
/ 19 июля 2009

для UTF-8:

<property name=”hibernate.connection.useUnicode”
value=”true” />
<property name=”hibernate.connection.characterEncoding”
value=”UTF-8″ />

Что касается установки комбинированного первичного ключа, то это возможно, но, поработав с ним, могу сказать, что не рекомендовал бы его. С документация :

Вы можете определить составной первичный ключ через несколько синтаксисов:

  • аннотировать свойство компонента как @Id и создать класс компонента @ Встраиваемый
  • аннотировать свойство компонента как @ EmbeddedId
  • аннотировать класс как @IdClass и аннотировать каждое свойство объекта участвует в первичном ключе с @ Id

С этим становится трудно работать, и это не рекомендуемый способ сделать это в Hibernate.

Вместо этого я рекомендую использовать аннотацию @NaturalId :

Хотя не используется как свойство идентификатора, некоторые (группа) свойств представляют естественный идентификатор объекта. это особенно верно, когда схема использует рекомендуемый подход использования суррогатный первичный ключ, даже если натуральный бизнес ключ существует. зимовать позволяет сопоставить такие природные свойства и повторно использовать их в запросе критериев. Естественный идентификатор состоит из все свойства помечены @ NaturalId.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...