我有VisitingCardPOJO表格.我想要更新单个条目,如果 没有= 3
VisitingCardPOJO.java
public class VisitingCardPOJO extends RealmObject {
@PrimaryKey private int no;
private String name;
private String address;
public int getNo() {
return no;
}
public void setNo(int no) {
this.no = no;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
Run Code Online (Sandbox Code Playgroud) 我想知道是否有一种正确的方法来检索一个对象,因为它在Realm for Android中具有主键.我知道这个方法objectForPrimaryKey确实存在于Swift中,但在Realm for Android中似乎没有这样的对应物.我真的认为这样做realm.where(EventInfo.class).equalTo("id", eventInfo.id).findFirst();看起来很浪费(至少它不是手腕友好的).我错过了一些方法吗?我目前正在使用Realm 1.0.1
我需要在我的User模型中实现一个协议,它需要一些特殊的属性.但我想避免将它们存储/保存在Realm数据库中.
我没有在文档中看到是否有关键字.有没有诀窍避免保存一些属性?
public final class User: Object, Mappable, AvatarImageViewDataSource {
dynamic var id: Int = 0
dynamic var desc: String? = nil
dynamic var email: String? = nil
dynamic var firstName: String? = nil
dynamic var lastName: String? = nil
...
public var myPropertyIDontWantToSave: String? = nil // I don't want this to be stored
Run Code Online (Sandbox Code Playgroud) 我在iOS上使用Swift 4编译遇到了这个问题,在启动时应用程序崩溃时出现以下消息
RLMException', reason: 'Primary key property 'serial' does not exist on object 'Book''
Run Code Online (Sandbox Code Playgroud)
我看到了类似的错误消息,但不是同一个.这就是我的对象的样子
import Foundation
import RealmSwift
class Book: Object {
dynamic var serial: String = ""
dynamic var title: String = ""
dynamic var pages: Int = 0
dynamic var genre: String = ""
override static func primaryKey() -> String? {
return "serial"
}
}
Run Code Online (Sandbox Code Playgroud)
当我通过Realm Browser应用程序检查default.realm文件时,我注意到这些条目只有#(0,1,2)并且没有数据.如果我注释掉主键,它会运行,但Realm中没有任何内容存储在此对象中.无法弄清楚为什么它会崩溃!
我一直在玩 SwiftUI,并且一直在编写一个小型膳食计划/待办事项列表样式的应用程序。我能够让 Realm 与 SwiftUI 一起工作,并编写了一个小的包装器对象来获取 Realm 更改通知以更新 UI。这对于添加项目和 UI 得到正确更新非常有用。但是,当使用滑动删除或其他方法删除项目时,我从 Realm 收到索引越界错误。
这是一些代码:
内容视图:
struct ContentView : View {
@EnvironmentObject var userData: MealObject
@State var draftName: String = ""
@State var isEditing: Bool = false
@State var isTyping: Bool = false
var body: some View {
List {
HStack {
TextField($draftName, placeholder: Text("Add meal..."), onEditingChanged: { editing in
self.isTyping = editing
},
onCommit: {
self.createMeal()
})
if isTyping {
Button(action: { self.createMeal() }) {
Text("Add")
}
}
}
ForEach(self.userData.meals) …Run Code Online (Sandbox Code Playgroud) 错误:
{ dyld:库未加载:@rpath/Realm.framework/Realm 引用自:/private/var/containers/Bundle/Application/43190AF8-F437-4B8F-9827-DDEA599AF618/Favorite Places.app/Favorite Places 原因:没有找到合适的图片。确实发现:/private/var/containers/Bundle/Application/43190AF8-F437-4B8F-9827-DDEA599AF618/Favorite Places.app/Frameworks/Realm.framework/Realm:代码签名对'/private/var/containers/Bundle无效/Application/43190AF8-F437-4B8F-9827-DDEA599AF618/Favorite Places.app/Frameworks/Realm.framework/Realm'
/private/var/containers/Bundle/Application/43190AF8-F437-4B8F-9827-DDEA599AF618/Favorite Places.app/Frameworks/Realm.framework/Realm: stat() failed with errno=25
/private/var/containers/Bundle/Application/43190AF8-F437-4B8F-9827-DDEA599AF618/Favorite Places.app/Frameworks/Realm.framework/Realm: code signature invalid for '/private/var/containers/Bundle/Application/43190AF8-F437-4B8F-9827-DDEA599AF618/Favorite Places.app/Frameworks/Realm.framework/Realm'
/private/var/containers/Bundle/Application/43190AF8-F437-4B8F-9827-DDEA599AF618/Favorite Places.app/Frameworks/Realm.framework/Realm: stat() failed with errno=1
/private/var/containers/Bundle/Application/43190AF8-F437-4B8F-9827-DDEA599AF618/Favorite Places.app/Frameworks/Realm.framework/Realm: code signature invalid for '/private/var/containers/Bundle/Application/43190AF8-F437-4B8F-9827-DDEA599AF618/Favorite Places.app/Frameworks/Realm.framework/Realm'
/private/var/containers/Bundle/Application/43190AF8-F437-4B8F-9827-DDEA599AF618/Favorite Places.app/Frameworks/Realm.framework/Realm: stat() failed with errno=1
(lldb)
}
Run Code Online (Sandbox Code Playgroud) 我有一个帮助程序类,用于在数据库领域上执行一些工作。如您所知,我们在使用领域时有一些限制,例如:
我的 Helper 类扩展 CoroutineScope并提供了CoroutineContext我使用的这段代码
Executors.newSingleThreadExecutor().asCoroutineDispatcher()
但我的问题是所有作业都CoroutineScope在非循环线程上运行,所以我如何创建一个ExecutorCoroutineDispatcher在单个循环线程上运行的作业。
很明显我不想使用,Dispatchers.Main因为它应该在我的数据库上完成工作
我正在使用 React Native 制作一个移动应用程序。我想使用领域(mongodb)。
所以运行后:
npm install realm
Run Code Online (Sandbox Code Playgroud)
领域已正确添加到“node_modules”中,我尝试使用以下命令导入领域:
import Realm from "realm";
Run Code Online (Sandbox Code Playgroud)
如果我执行 npm start 并测试该应用程序,我会收到以下错误消息:
错误:缺少领域构造函数。你运行了“pod install”吗?请参阅https://realm.io/docs/react-native/latest/#missing-realm-constructor进行故障排除
我正在使用 Windows 并在 Android 设备上测试该应用程序。互联网上有关此事的早期问题表明,在我的情况下不需要进行“pod install”。
我还尝试自动链接领域:
react-native link realm
Run Code Online (Sandbox Code Playgroud)
但后来我收到警告:
警告 不推荐调用react-native link [packageName],以支持自动链接。它将在下一个主要版本中删除。自动链接文档: https://github.com/react-native-community/cli/blob/master/docs/autolinking.md (节点:26016)警告:访问循环依赖项内模块导出的不存在的属性“padLevels”(用于
node --trace-warnings ...显示警告的创建位置)
这是否意味着自动链接不成功,因为自动链接将在下一版本中删除?
你们中有人对如何在我的 React Native 项目中成功导入 Realm 有建议吗?
以下是一些依赖版本:
“expo”:“^44.0.0”,
“领域”:“^10.14.0”
“react-native”:“0.64.3”,
我想创建可以在线和离线运行的Android应用程序.可以将Realm.io与离线数据库和Firebase组合为在线服务.
我正在尝试创建简单的应用程序,直接将realm对象添加到firebase,但我得到错误异常,如下所示:
java.lang.NoClassDefFoundError: rx.Observable
at libcore.reflect.InternalNames.getClass(InternalNames.java:55)
at java.lang.Class.getDexCacheType(Class.java:476)
at java.lang.reflect.Method.getReturnType(Method.java:183)
at java.lang.Class.getDeclaredMethods(Class.java:672)
at com.fasterxml.jackson.databind.introspect.AnnotatedClass._addMemberMethods(AnnotatedClass.java:593)
at com.fasterxml.jackson.databind.introspect.AnnotatedClass.resolveMemberMethods(AnnotatedClass.java:421)
at com.fasterxml.jackson.databind.introspect.AnnotatedClass.memberMethods(AnnotatedClass.java:243)
at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector._addMethods(POJOPropertiesCollector.java:457)
at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector.collect(POJOPropertiesCollector.java:233)
at com.fasterxml.jackson.databind.introspect.BasicClassIntrospector.collectProperties(BasicClassIntrospector.java:142)
at com.fasterxml.jackson.databind.introspect.BasicClassIntrospector.forSerialization(BasicClassIntrospector.java:68)
at com.fasterxml.jackson.databind.introspect.BasicClassIntrospector.forSerialization(BasicClassIntrospector.java:11)
at com.fasterxml.jackson.databind.SerializationConfig.introspect(SerializationConfig.java:490)
at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.createSerializer(BeanSerializerFactory.java:133)
at com.fasterxml.jackson.databind.SerializerProvider._createUntypedSerializer(SerializerProvider.java:873)
at com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:833)
at com.fasterxml.jackson.databind.SerializerProvider.findValueSerializer(SerializerProvider.java:387)
at com.fasterxml.jackson.databind.SerializerProvider.findTypedValueSerializer(SerializerProvider.java:478)
at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:97)
at com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:2593)
at com.fasterxml.jackson.databind.ObjectMapper.convertValue(ObjectMapper.java:2542)
at com.firebase.client.Firebase.setValueInternal(Firebase.java:336)
at com.firebase.client.Firebase.setValue(Firebase.java:298)
at com.pringstudio.firebaserealm.MainActivity$1.onClick(MainActivity.java:56)
at android.view.View.performClick(View.java:5198)
at android.view.View$PerformClick.run(View.java:21147)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.ClassNotFoundException: Didn't find class "rx.Observable" on path: …Run Code Online (Sandbox Code Playgroud) 我在Realm Android中使用RealmString替代List <String>.但是我遇到了RealmChangeListener的问题.我在下面的例子中使用了许多模型中的RealmString,如Dog,Cat,Chicken.但当任何人改变数据时,所有这些都会改变.
例如:当我拯救狗 - >狗变化和猫变化.
我可以通过使用RealmDogString,RealmCatString,RealmChickenString解决这个问题,但它复制了我的代码.谁有更好的解决方案?
这是我的示例代码:
public class RealmTestActivity extends AppCompatActivity {
private Context context;
private Realm realm;
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_realm_test);
Stetho.initialize(
Stetho.newInitializerBuilder(this)
.enableDumpapp(Stetho.defaultDumperPluginsProvider(this))
.enableWebKitInspector(RealmInspectorModulesProvider.builder(this).build()).build());
context = this;
RealmConfiguration realmConfig = new RealmConfiguration.Builder(this).build();
Realm.setDefaultConfiguration(realmConfig);
realm = Realm.getDefaultInstance();
final RealmResults<Dog> puppies = realm.where(Dog.class).lessThan("age", 2).findAll();
puppies.addChangeListener(new RealmChangeListener<RealmResults<Dog>>() {
@Override
public void onChange(RealmResults<Dog> results) {
System.out.println("XXX Dog ::" + puppies.size());
Toast.makeText(context, "Dog Change", Toast.LENGTH_SHORT).show();
puppies.size();
}});
final RealmResults<Cat> puppiesCat = realm.where(Cat.class).lessThan("age", 2).findAll();
puppiesCat.addChangeListener(new RealmChangeListener<RealmResults<Cat>>() {
@Override …Run Code Online (Sandbox Code Playgroud)