6

こんにちは私はこのようなコードを書きました

@Id
@Column(nullable=false)
@GeneratedValue(strategy=GenerationType.AUTO)
public int getUserID() {
    return UserID; 
}

しかし、私は「e.setUserID(01);」のようにDAOから手動で設定します。挿入します。それ以外の場合、行は挿入されません。idに値を取得し、自動的に生成された値を取得するプロセスはありますか。私は私がいくつかの助けを得るだろうと思っています

4

2 に答える 2

5

autoの代わりにIDENTITY生成タイプを使用してください。idにはLongを使用します。また、名前をUserIDからuserIdに変更することをお勧めします。クラス名の@Entityを忘れないでください。

@Entity
public class MyClass{

private Long userId;

    @Id 
    @GeneratedValue(strategy=GenerationType.IDENTITY) 
    @Column
    public Long getUserID(){
        return userId;
    }

    //.. rest of class

}

命名規則に十分注意し、フィールド名とタイプがデータベースのフィールド名とタイプと一致することを確認してください。

于 2012-04-11T12:47:36.967 に答える
4

使用する

@GenericGenerator(name="generator", strategy="increment")
@GeneratedValue(generator="generator")
于 2012-04-11T11:48:34.987 に答える