我正在尝试编写一个JPA查询来获取特定实体的类型,给定实体的id。我有一个抽象类Account,具体的子类CustomerAccount和AdministratorAccount。 id是Account的一个属性,因此我尝试构造一个查询,以便在给定帐户ID的情况下返回Type(即foo.bar.CustomerAccount)。
我尝试了以下内容:
String sql = "SELECT TYPE(a) from Account a where a.id = :userId";
但这似乎不起作用。有任何想法吗?如果有帮助,我正在使用谷歌应用引擎jpa实现(datanucleus)。
答案 0 :(得分:0)
首先,FWIW你正在使用谷歌的JPA插件,恰好使用了DataNucleus项目提供的一些古老的罐子。您没有使用DataNucleus JPA。
其次,数据存储“GAE / Datastore”和Google的JPA插件不太可能支持JPQL“TYPE”,因为它们是在插件开发之后出现的。
最后,您可以通过执行
以更有效的方式获得所需的信息trigger CreateRecord on Account (before insert,before update) {
List<Account> CreateAcc = new List<Account>();
For(Account acc:trigger.new)
{
acc.Name='abc';
CreateAcc.add(acc);
}
insert CreateAcc;
}
因为这也检查了L1 / L2缓存