[英]How to index a super class property in Objectify when super class is not an @Entity
[英]Objectify - should I create an entity super class?
有什么理由為什么我的所有實體都不應該是一個通用ModelEntity對象的子類?
@Entity
public class ModelEntity {
@Id Long id;
}
@Subclass
public class User extends ModelEntity {
@Index
String username;
}
優點很明顯:所有實體都有通用的代碼(例如id,date,getKey),您能想到缺點嗎?
擁有通用的基類可能會有所幫助,但是您幾乎可以肯定不想使其成為多態實體層次結構的一部分。 不要為此使用@Subclass
; 您不需要它:
public class ModelEntity {
@Id Long id;
}
@Entity
public class User extends ModelEntity {
@Index
String username;
}
嗯,jpa抽象的一大優點是在持久層和業務邏輯之間保持隔離。 如果您對所有實體都使用隱藏ID,那么您將放棄這一點。
例如,您可以在實現中包含一個value對象,以便實際上隱藏實體的@Id部分。 您可以對“真實”實體使用完全不同的@Id。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.