大家好,对不起我的英语。
我有一个我无法理解的大问题。我创建了一个ORMLITE
的表,其中包含同一个表中的外部字段。我插入它但是当我检索它时,它总是为空。
@DatabaseTable(tableName = "Menu")
public class MenuDo {
private static final String MENU_PARENT = "menu_parent";
/**id unique dans la base de donnée*/
@DatabaseField(generatedId=true,unique=true)
private Long id;
/**le gabarit du sous menu qui sera renvoyé par le WS*/
@DatabaseField(canBeNull=true,columnName="gabarit")
private String gabarit;
/**Le label du menu qui sera renvoyé par le WS*/
@DatabaseField(canBeNull=true,columnName="label")
private String label;
/**url de la redirection généralement redirection vers la liste des articles d'une rubrique*/
@DatabaseField(canBeNull=true,columnName="url")
private String url;
/**Le nom de la rubrique du l'item du menu*/
@DatabaseField(canBeNull=true,columnName="rubrique_id")
private String rubriqueId;
/**les sous menu contenu dans le menu*/
@DatabaseField(foreign = true, columnName = MenuDo.MENU_PARENT)
private MenuDo menuParent;
}
我这样插入
public void insert(final List<MenuDo> menuDo) throws SQLException {
configurationRepository = new ConfigurationRepositoryImpl(context);
TransactionManager.callInTransaction(
configurationRepository.getConnectionSource(),
new Callable<Object>() {
@Override
public Object call() throws Exception {
deleteAll();
for(MenuDo menu:menuDo)
{
insert(menu);
}
return null;
}
});
}
要在数据库中插入的方法:
@Override
public void insert(C entity) {
if(entity!=null){
if(abstractRunTimeExceptionDao.create(entity)==0){
throw new TechnicalException(INSERT_ERROR_MESSAGE + entity.toString());
}
}
}
插入时没有错误,我已经验证菜单在插入
之前父菜单不为空但是当我从数据库中检索元素时,menuParent
始终为空。
感谢您的回复。