标签: sugarorm

SugarOrm:OrderBy相关表

有了SugarORM,我理解我可以做到这一点

public class Book extends SugarRecord<Book> {
  String name;
  String ISBN;
  String title;
  String shortSummary;

  // defining a relationship
  Author author;
}
Run Code Online (Sandbox Code Playgroud)

那么我怎样才能在Book.class上找到我可以由作者订购的内容.

我试过了

Book.find(Book.class, null, null, null, "author.id desc",null);;
Run Code Online (Sandbox Code Playgroud)

Book.find(Book.class, null, null, null, "author desc",null);;
Run Code Online (Sandbox Code Playgroud)

而这些都不会奏效

android sugarorm

7
推荐指数
2
解决办法
4500
查看次数

Sugar ORM需要在每次单元测试时保存记录吗?

我正在使用Sugar ORM for db和Robolectric进行单元测试.使用Sugar ORM和Robolectric i一起关注这个问题.

我把我的代码放在startEverTestSugarAppAsFirst方法并运行的地方.

new PersonHandler(new Activity()).insertPeople();
Person p = Person.findById(Person.class, 1);
System.out.println(p.getName());
Run Code Online (Sandbox Code Playgroud)

它打印第一条记录的名称.到现在为止还挺好.

但是如果我注释掉//new PersonHandler(new Activity()).insertPeople();并再次运行,则不会返回任何记录并且会给出空指针异常.我认为Sugar ORM在第一次运行时将记录存储到某个地方,我可以在第二次访问这些记录.

另一方面,如果我运行模拟器,我将下面的代码放在我的主要活动的onCreate方法中,在第二次运行中注释掉第一行,我可以看到日志中打印的第一条记录.

new PersonHandler(this).insertPeople();
Person p = Person.findById(Person.class, 1);
Log.v("person", p.getName());
Run Code Online (Sandbox Code Playgroud)

那么,在单元测试结束后,Sugar ORM会删除db吗?或者它保存数据库的位置,所以我可以一遍又一遍地使用它?

database android unit-testing robolectric sugarorm

6
推荐指数
1
解决办法
349
查看次数

Sugar ORM不会将数据保存到数据库中

我目前正在为我的Android应用程序使用Sugar ORMAndroid Async Http Client.

我阅读了Sugar ORM的文档并完成了那里写的内容.我的HttpClient使用单例模式并提供调用某些API的方法.

现在是关于它的坏部分.我无法将数据持久保存到由Sugar ORM创建的数据库中.这是调用API的方法:

public void getAvailableMarkets(final Context context, final MarketAdapter adapter) {
        String url = BASE_URL.concat("/markets.json");
        client.addHeader("Content-Type", "application/json");
        client.addHeader("Accept", "application/json");

        client.get(context, url, null, new JsonHttpResponseHandler() {

            @Override
            public void onSuccess(int statusCode, Header[] headers, JSONArray response) {

                Log.i(TAG, "Fetched available markets from server: " + response.toString());


                Result<Markets> productResult = new Result<Markets>();
                productResult.setResults(new Gson().<ArrayList<Markets>>fromJson(response.toString(),
                        new TypeToken<ArrayList<Markets>>() {
                        }.getType()));
                ArrayList<Markets> marketsArrayList = productResult.getResults();

                // This lines tells me that there are no entries …
Run Code Online (Sandbox Code Playgroud)

android sugarorm android-async-http

5
推荐指数
1
解决办法
9527
查看次数

如何在Suger ORM Android中检查表是否存在

我正在使用Android应用程序,我正在使用Suger ORM进行数据库操作.现在我有一个场景,我必须检查"SomeTable"是否不存在然后创建它并插入记录,如果表已经存在并且有一些记录我必须更新记录.我已编写此代码以检查表是否不存在然后创建记录并保存它.

Total_Budget_List = Total_Budget.listAll(Total_Budget.class);
if (Total_Budget_List.size() == 0)
{
    for (int i=0;i<Total_Budget_List.size();i++)
    {
        totalbudget = new Total_Budget(Select_Members.get(i).getId()+"",CurrentDate,per_person_budget+"");
        totalbudget.save();
    }
}
Run Code Online (Sandbox Code Playgroud)

但我得到的数据库中没有这样的表.现在我如何检查表是否存在并且该表中是否有任何记录.

orm android android-sqlite sugarorm

5
推荐指数
1
解决办法
1783
查看次数

Android - Sugar ORM拯救崩溃

我正在尝试将Sugar ORM(v 1.3)集成到我的Android应用程序中,并且在尝试保存新创建的实体时我不断遇到崩溃(NullPointerException).

这是我的崩溃......

01-21 06:02:36.012    2856-2856/com.spuddmobile.kel E/AndroidRuntime? FATAL EXCEPTION: main
    Process: com.spuddmobile.kel, PID: 2856
    java.lang.NullPointerException
            at com.orm.SugarRecord.save(SugarRecord.java:109)
            at com.orm.SugarRecord.save(SugarRecord.java:45)
            at com.spuddmobile.kel.Fragments.NewAppFragment._SaveForm(NewAppFragment.java:231)
            at com.spuddmobile.kel.Fragments.NewAppFragment.onMenuItemSelection(NewAppFragment.java:175)
            at com.spuddmobile.kel.Activities.MainActivity.onOptionsItemSelected(MainActivity.java:89)
            at android.app.Activity.onMenuItemSelected(Activity.java:2600)
            at com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:1012)
            at com.android.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:735)
            at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:152)
            at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:874)
            at com.android.internal.view.menu.ActionMenuView.invokeItem(ActionMenuView.java:546)
            at com.android.internal.view.menu.ActionMenuItemView.onClick(ActionMenuItemView.java:115)
            at android.view.View.performClick(View.java:4438)
            at android.view.View$PerformClick.run(View.java:18422)
            at android.os.Handler.handleCallback(Handler.java:733)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5017)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
            at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

这是我的AppManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.spuddmobile.kel" >

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:name="com.orm.SugarApp"
        android:theme="@style/AppTheme" >

        <meta-data …
Run Code Online (Sandbox Code Playgroud)

orm android sugarorm

5
推荐指数
1
解决办法
3925
查看次数

Sugar ORM在棒棒糖上抛出NoSuchTable异常

我正在开发一款Android应用.我按照Sugar ORM网站上的说明创建了一个数据库表.我做的一切都是一样的,我已经仔细检查了一下.

问题是,当应用程序在Android 5.0或更高版本上运行时,执行查询时,它会抛出SQLiteException并且不会显示此类表.相同的代码在KitKat设备上执行正常,并导致正确的结果,没有任何异常.

Sugar ORM支持Andriod 5.0吗?

sqlite android sugarorm

5
推荐指数
1
解决办法
495
查看次数

Sugar ORM迁移:创建新的表删除/重新创建现有表

我在我的应用程序的第一个版本中使用了SugarORM.现在,我正在开发第二个版本,它已将新表添加到DB中.

根据SugarORM 文档 "Sugar将自动为新实体创建表,因此您的迁移脚本只需要满足对现有表的更改."

这是我做的:

  1. 增加了AndroidManifest中的DB版本 <meta-data android:name="VERSION" android:value="2" />
  2. 创建了新的记录类. public class NewModel extends SugarRecord<NewModel>

在运行应用程序时,Sugar创建了新表,但不幸的是,它还删除/创建了现有表,删除了本地保存的所有数据!

我还尝试通过添加2.sql包含我的CREATE TABLE NEW_MODEL语句的迁移脚本文件来自己创建新表.不幸的是,它抛出了一个异常"Table已经存在",因为Sugar创建了新表,然后尝试运行我的脚本!

有什么建议?

android sugarorm

5
推荐指数
1
解决办法
2560
查看次数

SugarORM不会持久化HashMap和ArrayList

我有两个实体类,project和projectList.ProjectList具有属性id和包含项目列表的HasMap.我能够执行INSERT操作而没有任何错误,但是在检索我的HashMap列表时为null.Tried插入一个arrayList,这也返回null.

是否支持在SugarORM中持久化集合类,如HashMap或ArrayList?

请帮助.谢谢.

ProjectList实体类.

public class ProjectList extends SugarRecord<ProjectList> {
private int projectListId;
private HashMap<String, Project> projects;

/** Empty Constructor */
public ProjectList(Context context) {
    super(context);
}

public ProjectList(Context context, int projectId,
        HashMap<String, Project> projects) {
    super(context);
    this.projectListId = projectId;
    this.projects = projects;
}

/**
 * @return the projectListId
 */
public int getProjectListId() {
    return projectListId;
}

/**
 * @param projectListId
 *            the projectListId to set
 */
public void setProjectListId(int projectListId) {
    this.projectListId = projectListId;
}

/**
 * @return the …
Run Code Online (Sandbox Code Playgroud)

orm android sugarorm

4
推荐指数
1
解决办法
2210
查看次数

如何在SugarORM中获取已保存的ID?

在我看来,SugarORM是最容易使用的SQLite库,并且证明对像我这样的初级Android开发人员非常有帮助.SugarORM自动创建表并为每个扩展SugarRecord的java类添加一个AUTO_INCREMENT id列.

插入新行可以很简单someJavaObject.save().但是,如果插入该行,我怎样才能获得插入的id?在PHP中我可以像$id = mysql_insert_id();插入后那样做.

我知道我可以获得表格中最后一行的id.但是新行的插入在某种程度上可能是非常不可预测的.假设我有一个活动和一个同时插入新行的服务,我想避免错误的ID.

在此先感谢您的帮助.

sqlite android sugarorm

4
推荐指数
1
解决办法
2665
查看次数

如何使用satyan的Sugar ORM和@Table注释

我对SugarOrm for Android非常满意,但我遇到了一个问题.我正在使用GSON进行Json序列化,我想摆脱SugarRecordid属性.我知道我应该使用@Table注释,然后再使用从序列化中排除特定领域@Expose,但与@Table注释下课我不能用.save(),delete()......方法的对象上,因为它是延长的情况SugarRecord.我不知道如何使用@Table注释来持久化对象.

我发现这里文档非常有限.

android gson sugarorm

4
推荐指数
1
解决办法
1104
查看次数