代码之家  ›  专栏  ›  技术社区  ›  dlinsin JaviAlgaba

GAE无主JPA关系

  •  1
  • dlinsin JaviAlgaba  · 技术社区  · 15 年前

    我在我的领域模型中有一个无主关系

    @Entity
    public class A {
     @Id
     private String id;
     private Key firstB;
     private Key secondB;
    
     // getters & setters
    }
    
    @Entity
    public class B {
     @Id
     private Key id;
     private String name;
     // getter & setter
    }
    

    KeyFactory.createKey(B.class.getSimpleName(), name) 是我生成B类密钥的方法吗?

    我独立于a保存b,并将其分配给a的一个实例。问题是在保存了两个字段之后 菲尔斯堡 菲斯塔 是空的。

    知道我做错了什么吗?

    1 回复  |  直到 15 年前
        1
  •  1
  •   Matthew Murdoch    15 年前

    Key 对象在默认情况下不会持久化,因此需要显式注释,这就是您看到的原因 null 价值观。

    试注 firstB secondB 作为 @Enumerated (这真的应该是 @Basic 但是 there is a bug which prevents this from working ):

    @Entity
    public class A {
        @Id
        private String id;
    
        @Enumerated
        private Key firstB; 
    
        @Enumerated
        private Key secondB;
    }
    

    更新: 最新的sdk和datanucleus jar现在正确地允许使用@basic。