1
如何自动在App引擎数据存储中生成Id? 我正在使用自动创建的后端函数insertEntity()。自动生成Id App引擎数据存储
我使用
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long Id;
当我打电话插入功能,我想的是,数据存储的自动分配ID作为主键...
感谢。
如何自动在App引擎数据存储中生成Id? 我正在使用自动创建的后端函数insertEntity()。自动生成Id App引擎数据存储
我使用
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long Id;
当我打电话插入功能,我想的是,数据存储的自动分配ID作为主键...
感谢。
从技术上讲,您所做的事情没有任何问题。该ID将自动生成。
我相信这个问题是为insertEntity()方法生成的自动生成的代码。该代码当前期望已提供ID值并基于该值,它首先尝试检索现有的实体。由于ID很可能是空的,即你没有通过它,它会导致代码中出现异常。
修改代码以检查getId() != null
。如果不为空,则只允许它前进,否则就调用makePersistent()
代码。
哇。有时候我太生活太蠢了。 自动生成的代码检查实体是否已经在数据存储中,因为它假定您提供了Id。我只是删除了 if(contains Article(article)){ throw new EntityExistsException(“Object already exists”); } – Benedikt
谢谢你的提示! – Benedikt
不客气!我还建议您重新访问其他生成的代码。另外,我确实认为他们拥有的containsArticle(...)代码是有价值的,只是需要对它进行有条件的检查。理想情况下,您需要该检查,以便在记录已存在的情况下可以抛出异常。在确定是否存在类似记录的情况下,您可能还想在其他字段上进行额外的检查! – Romin