-
Notifications
You must be signed in to change notification settings - Fork 393
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Question] How to manipulate a list of objects ? #6
Comments
Hi, Currently, every time a list / map / object is changed, it has to be written completely. Currently there are no better ways to do it and I haven't found a smart way to handle this internally. If only a part of your list changes regulary you should consider splitting the list in two parts. If you have an idea how we could store "parts of lists" in the box file, just let me know ;) |
I just published a new version of Hive which solves your problem. You can use |
@leisim when using Box.values do you think using the map method
for object generation is efficient enough instead of opting into the typeannotator? The only way I've side skirted the cast error of "_InternalHashMap<dynamic, dynamic> is not a subtype of Map<String, dynamic>" is by forcing a json encode/decode and then using my SomeObject.fromJson(map) method to generate the object. I don't think this is a good solution but wanted to get your input before I committed the time to go through and annotate each object and its items. |
[Update] - k, thanks to this response : flutter/flutter#16589 (comment) |
@adriancmurray Say you want maps of type
box.values.map((m) => m.cast<String, String>()).toList();
@HiveType
class MapHolder {
@HiveField(0)
Map<String, String> data;
} Run the type adapter generator and get maps like this: var myMap = box.get('myMap').data; Neither solution is perfect but unfortunately Dart is a bit lacking when it comes to use of Generics at runtime. If anyone finds out how this could be improved, I'd be happy to implement it. |
Hey, first of all hive is a pretty sweet library and the need to not pass down boxes simplifies development by a ton. I am using it for an App in production, but I ran into a problem. It's more like a performance issue though.
I have a list of objects, rather than using the type adapter I'm storing it as a list of maps and it seems to work pretty well. But what if I want to append to the stored list. Will the entire list be rewritten into the box. Wouldn't it cause any performance issues down the line? Is there any better way to do this ?
The text was updated successfully, but these errors were encountered: