我在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) 我试图使用Hibernate 4.1.1保持一对多和多对一的关系,但外键始终为NULL.
有两个实体:帐户和客户.一个客户可以有多个账户,而一个帐户只能有一个客户端.
这是课程(只有重要的):
Account.java
@Entity
@Table(name = "account")
public class Account implements Serializable {
private Client client;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
public long getId() {
return id;
}
@ManyToOne
@JoinColumn(name = "id_client")
public Client getClient() {
return client;
}
}
Run Code Online (Sandbox Code Playgroud)
Client.java
@Entity
@Table(name = "client")
public class Client implements Serializable {
private List<Account> accounts;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = …Run Code Online (Sandbox Code Playgroud)