// ========================================================================
// Copyright (C) zeroth Project Team. All rights reserved.
// GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007
// http://www.gnu.org/licenses/agpl-3.0.txt
// ========================================================================
package zeroth.actor.service.domain;
import java.util.Collection;
import javax.persistence.Access;
import javax.persistence.AccessType;
import javax.persistence.Cacheable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
import zeroth.actor.service.domain.parts.TitleAuth;
import zeroth.framework.enterprise.domain.AbstractVersionable;
/**
* 職名
* @author nilcy
*/
@Entity
@Access(AccessType.FIELD)
@Table(name = "title", uniqueConstraints = { @UniqueConstraint(columnNames = { "name" }) })
@Cacheable(true)
public class Title extends AbstractVersionable<Title> {
/** 製品番号 */
private static final long serialVersionUID = 5468865843361146757L;
/** 職名 */
@Column(name = "name", nullable = false, insertable = true, updatable = true)
private String name;
/** 建制順 */
@Column(name = "administrative_order", nullable = false, insertable = true, updatable = true)
private Long order;
/** 権限 */
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, orphanRemoval = true)
@JoinColumn(name = "title_id", insertable = true, updatable = true)
private Collection<TitleAuth> auths;
/**
* {@link #name} の取得
* @return {@link #name}
*/
public String getName() {
return name;
}
/**
* {@link #name} の設定
* @param aName {@link #name}
*/
public void setName(final String aName) {
name = aName;
}
/**
* {@link #order} の取得
* @return {@link #order}
*/
public Long getOrder() {
return order;
}
/**
* {@link #order} の設定
* @param aOrder {@link #order}
*/
public void setOrder(final Long aOrder) {
order = aOrder;
}
/**
* {@link #auths} の取得
* @return {@link #auths}
*/
public Collection<TitleAuth> getAuths() {
return auths;
}
/**
* {@link #auths} の設定
* @param aAuths {@link #auths}
*/
public void setAuths(final Collection<TitleAuth> aAuths) {
auths = aAuths;
}
}