Чрезвычайно запутанное название, я знаю.
Привет, я столкнулся с некоторыми фанковыми проблемами здесь.
У меня есть класс свойств, как это
@PersistenceCapable
public class Property implements Serializable
{
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
@Extension(vendorName = "datanucleus", key = "gae.encoded-pk", value = "true")
private String key;
//...
}
Теперь у меня также есть два других класса. Назовем их Фабрика и Магазин. У них обоих есть свойства, например:
@PersistenceCapable
public class Factory implements Serializable
{
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
@Extension(vendorName = "datanucleus", key = "gae.encoded-pk", value = "true")
private String key;
@Persistent
private String m_Name;
@Persistent
private List<Property> m_FactoryProperties;
}
а также
@PersistenceCapable
public class Store implements Serializable
{
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
@Extension(vendorName = "datanucleus", key = "gae.encoded-pk", value = "true")
private String key;
@Persistent
private String m_Name;
@Persistent
private List<Property> m_StoreProperties;
}
Хотя это выглядит просто, это не сработает. И я понятия не имею, почему, я предполагаю, что это связано с индексом, так как в средстве просмотра данных GAE есть либо m_FactoryProperties_INTEGER_IDX, либо m_StoreProperties_INTEGER_IDX, когда я просматриваю объекты свойств. (Они никогда не появляются одновременно).
(Не работает, если я также переименую списки в m_Propertys)...
Разве это невозможно? Я МОГУ создать классы FactoryProperty и StoreProperty, но это было бы ужасно неправильно. Другим решением, о котором я думаю, является создание суперкласса, который содержит список свойств, а затем наследование Factory и Store от этого класса, что ДОЛЖНО заставить их совместно использовать индекс, я думаю... Должен ли я просто пропустить принадлежащие отношения и перейти к бесхозный?
Я чувствую, что могу просто пропустить что-то важное. Есть идеи?
Спасибо