2009-07-31 19 views
15

Bắt đầu một dự án mới Tôi muốn sử dụng chú thích Hibernate với MySQL thay vì tệp cấu hình mà tôi đã sử dụng cho đến nay. Và tôi dường như không thể tìm ra tương đương với:Tương đương với <generator class = "native"></generator> sử dụng chú thích MySQL và Hibernate3

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

Tôi đã cố gắng sử dụng:

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

nhưng có:

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

hay:

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

Hãy cho tôi:

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

Có ai triển khai thành công chú thích MySQL và Hibernate3 để tự động tạo id không?

Trả lời

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

Điều này cho phép Hibernate chọn chiến lược phù hợp dựa trên cơ sở dữ liệu cơ bản.

+1

Đối với MySQL, nó giới thiệu bảng chuỗi thay vì sử dụng tạo ID gốc. –

-1

Thử sử dụng @GeneratedValue(strategy=GenerationType.AUTO). Điều đó nên sử dụng chức năng autonum MySQL.

Các vấn đề liên quan