2012-06-29 22 views
5

tôi nhận được lỗi này trong khi cố gắng lưu dữ liệu vào mô hình trong db.[PersistenceException: Lỗi nhận được chuỗi kế tiếp]

@Entity 
public class User extends Model { 
    @Required 
    public String name; 
    @Email 
    public String email; 
    @Required @MaxLength(value=10) 
    public String username; 
    @Required @MinLength(value=4) 
    public String password; 
    @Id 
    public int id; 
} 

đây là lớp của tôi.

đây là lỗi trong khi tôi đang cố gắng lưu mô hình vào db.

enter image description here

tôi sẽ đánh giá cao mọi nỗ lực trợ giúp! cảm ơn nhiều.

EDIT: cấu trúc bảng là đây enter image description here

+0

Vui lòng hiển thị cấu trúc bảng của bạn (tệp sql tạo bảng). Và cho chúng tôi biết bạn đang làm việc gì, bởi vì, nếu nó là trên MySQL, nó không hỗ trợ chuỗi. –

+0

tôi đã thêm cấu trúc bảng của mình, vui lòng xem cập nhật – doniyor

+0

bạn đã sử dụng ebean để tạo bảng của mình chưa? –

Trả lời

10

Tôi nghĩ rằng với ebean bạn có thể chất tên và chú thích id của bạn. Bạn cũng có thể phải nói với nó tên của trình tự hậu thuẫn cũng như (tôi không nhớ). This cho biết cách thực hiện.

+0

John, cảm ơn rất nhiều! Đó là điểm. Tuyệt vời Stackoverflower! ;) – doniyor

+0

Giải pháp này cũng làm việc cho tôi (Play 2.0.4). Khóa đã thêm chú thích này vào mô hình Người dùng của tôi: '@GeneratedValue (strategy = GenerationType.SEQUENCE, generator =" users_id_seq ")'. Tôi không biết nếu Play không nhận dạng được chuỗi chính xác hay là gì, nhưng nó hoạt động ngay bây giờ. Bực bội. – duma

+0

Tôi cũng đã phải xác định trình tự, nếu không Hibernate sẽ cho tôi biết nó không biết về users_id_seq: '@SequenceGenerator (name =" seq_gen_name ", sequenceName =" task_seq ") @GeneratedValue (strategy = GenerationType.SEQUENCE, generator =" seq_gen_name ") @Id public Id dài;' – Adrien

2

này đã làm việc cho tôi:

@Entity 
@Table(name = "table", schema = "schema") 
public class Bean extends Model{ 

    @Id 
    @Column(name = "idcolumn") 
    @SequenceGenerator(name="gen", sequenceName="schema.table_idcolumn_seq",allocationSize=1) 
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "gen") 
    private int id; 
} 

Khi sử dụng SequenceGenerator, xin vui lòng phiền lỗi này trong Hibernate: https://hibernate.atlassian.net/browse/HHH-7232

Nó buộc bạn phải viết giản đồ trực tiếp vào sequenceName thay vì sử dụng các lĩnh vực schema trong chú thích SequenceGenerator.

1

này làm việc cho tôi vào lớp chú thích:

@SequenceGenerator(name = "SEQUENCE_NAME", sequenceName = "PST_BUSINESS.S_BUSINESS_DOMAIN") 
@Entity 
@Table(name = "TB_BUSINESS_DOMAIN", schema = "PST_BUSINESS") 
public class PstBusinessDomain extends PstAbstractBaseMappedEntity { 

Như Leo nói, chiến lược này làm việc cho chú thích trong lĩnh vực này và cũng trong lớp.

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