다음과 같이 기본 기본 키가있는 기본 클래스를 정의합니다.GAE, JDO 긴/긴 형식으로 기본 키를 쿼리하는 방법
@PersistenceCapable(identityType = IdentityType.APPLICATION, detachable = "true")
@Inheritance(strategy = InheritanceStrategy.SUBCLASS_TABLE)
public class ModelBase implements Serializable {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long id;
및 기타 pojo는 ModelBase를 확장합니다. 내가 JDOQL에 의해 쿼리가이 코드
public List<PersonalSetting> getByIds(Long... Ids) {
Query query = getQuery();
query.setFilter("id ==:id");
return (List<PersonalSetting>) query.execute(Ids);
}
같았다하지만 그냥 나에게 예외를 제공합니다.
java.lang.ClassCastException: [Ljava.lang.Long; cannot be cast to com.google.appengine.api.datastore.Key
Key 클래스에 "Id"필드가 있지만 "id.id == : id"와 같이 액세스 할 수 없습니다. 누구나 해결 방법을 알려 줄 수 있습니까? 고마워요!
기본 키를 String 유형으로 변경하려고 시도했습니다. 다시 발생합니다. 내 기본 필드는 String이지만 Key에 캐스트 할 수 없다고했습니다. 왜요? 어떻게 포함 된 메서드가 작동합니까, 나는이 문제에 열중 할 것입니다. – Jump2cn