2016-07-27 9 views
0

私の人生にとってはこれを理解できません。 たび、私はこのように私のinsertメソッドを実行するORMLiteのIDは常にnullです(IDフィールドはありません)

@DatabaseField(id = true, columnName = "ID", canBeNull = false, generatedId = true) 
private int entityId; 

だから私の要求オブジェクトに私が持っている:

public void insert(T object) throws SQLException { 
    DatabaseConnection connection = objectDao.startThreadConnection(); 
    Savepoint savepoint = null; 
    try { 
     savepoint = connection.setSavePoint(null); 
     objectDao.createOrUpdate(object); 
    } finally { 
     connection.commit(savepoint); 
     objectDao.endThreadConnection(connection); 
    } 
} 

は、私はいつもこの

Class class UnsyncTripRequest does not have an id field 

のようなエラーが出ますが、私はわからないんだけどなぜ私はidが自動的に作成されるべきであると理解しているからこれを得るのですか?常にnullである

FieldType idField = tableInfo.getIdField(); 

: 私はOrmLites BaseDaoImplクラスで参照このラインを持っているextractIdの方法があります。誰も私がこの問題をどのように修正できるかについての洞察を持っています。 ありがとう

答えて

0

「id = true」と「generatedId = true」の両方の属性が設定されています。あなたは 'id = true'を削除して何が起こるか見ていただけますか?

+0

私は残念ながら同じエラーを受け取ります – goodgamerguy

+0

'generatedId'は' id'を意味します。 – Gray

+1

関連オブジェクトがありますか?これはどう? @ForeignCollection(id = true) ここをクリックしてください:http://ormlite.com/javadoc/ormlite-core/com/j256/ormlite/field/ForeignCollectionField.html – SISLAM

1

FieldType idField = tableInfo.getIdField(); ...常にnullです。

問題はエンティティであり、セーブポイントとは関係ありません。何とかDAOによって生成されているtableInfoがあなたのエンティティと一致しません。 entityIdフィールドがクラスにある場合は、ormlite_config.txtファイルが更新されていない可能性があります。

+0

Hmm strange。プロジェクトにormlite_config.txtファイルが見つかりません。 entityIdフィールドは自分のクラスにありますが、奇妙なことはこれが別のケースで動作することです – goodgamerguy

+1

スーパークラス@goodgamerguyにある可能性はありますか? – Gray

+0

ナー私はそれを見ない – goodgamerguy

関連する問題