Эквивалент <generator class= "native" ></generator> с использованием аннотаций MySQL и Hibernate3

Запуск нового проекта я хотел бы использовать аннотации Hibernate с MySQL вместо файлов конфигурации, которые я использовал до сих пор. И я не могу найти эквивалент:

    <id name="id" type="long" >
        <generator class="native"></generator>
    </id>

Я попытался использовать:

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY, generator = "native")
private long id;

но получил:

org.hibernate.AnnotationException: Unknown Id.generator: native

или

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;

Дайте мне:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: PROCEDURE projectName.identity does not exist

Кто-нибудь успешно развернул аннотации MySQL и Hibernate3 для автоматического создания идентификаторов?

Ответы

Ответ 1

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public Long getId() {
    return id;
}

Это позволяет Hibernate выбрать соответствующую стратегию на основе базовой базы данных.

Ответ 3

Попробуйте использовать @GeneratedValue(strategy=GenerationType.AUTO). Это должно использовать функциональность MySQL autonum.