2013-06-19 50 views
1

我有實體:Hibernate實體 - 添加業務邏輯到實體?

@Entity(name = "Term") 
@Table(name = "extra_term") 
public class Term implements Cloneable, Serializable{ 

這個實體有ID

@Id 
@GeneratedValue(strategy=GenerationType.AUTO) 
private Long id; 

而這個實體擁有這個實體所擁有的用戶列表屬性(用戶註冊到的術語)

@OneToMany(cascade = CascadeType.ALL) 
@JoinTable(name = "etc. etc. etc. })  
private List<TermUser> users = new ArrayList<TermUser>(); 

是否可以聲明商業方法來計算註冊到具體期限的用戶總數?像

public long getUsersCount() { 
    return QUERY TO THE DATABASE "GET COUNT OF USERS REGISTERED TO TERM WITH ID 
    (where ID is the id of this entity?)" 
} 

東西,我需要註冊數從entitz直服用者的數量,但我不希望有一個數據庫屬性「registeredUsersCount」。

回答

2

這正是@Transient的用途。

實體的每個非靜態非瞬態屬性(取決於訪問類型的字段或方法)都被認爲是持久性的,除非您將其註釋爲@Transient。

+0

我會看看那個。 –

+0

好吧,所以我會這樣的事情,對吧? \t @瞬變 \t public long getCountOfRegisteredUsers(){ \t \t return this.users.size(); \t} –

+0

是的,因爲沒有字段,您只需註釋getter方法。 –

相關問題