如果您有一个命名数据库表,并且您的应用程序和DAL逻辑基于不同的值,您应该能够识别这些值。我用枚举来做,但我想可能有更好的方法。我的方式(非常剥离的代码):
假设我们有实体Pet和Genus(映射到数据库表)。
class Pet{int genusId; int id;}
class Genus{
int id;
public enum VALUES{
CAT(0), DOG(1), PARROT(2);
public final int id;
private VALUES(int id){this.id = id;}
}
}
查询就像:
TypedQuery<Pet> q = em.createQuery("select p from Pet p where p.genusId in (:genusIds)");
q.setParameter("genusIds", Arrays.asList(Genus.VALUES.DOG.id, Genus.VALUES.CAT.id));
我无法获得相关的谷歌点击,所以我猜我可能会走错路。
使用应用程序逻辑保留命名ID的最流行的替代方法是常量,例如:
interface MyConst{
public static final int GENUS_CAT_ID = 0;
...
}
你如何存储你的身份证?