2013-06-19 62 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方法。 –