EJB(Enterprise JavaBean):
实体Bean(Entity Bean)
消息驱动Bean(MessageDriven Bean)
会话Bean(Session Bean):Statefull Session Bean、Stateless Session Bean、Singleton Session Bean
实体Bean(Entity Bean):
fetch属性:设定提取该Entity时是否立即提取该属性信息,值:eagerly,lazy
optional属性:设定关系是否可空。类似的有nullable属性是设定数据库中该列是否可空。
orphanRemoval属性:设定在删除关系时是否同时删除对应的Entity
cascade属性:对一个实体类进行操作时是否对有对应关系的实体自动进行相同的操作。值:PERSIST(持久化操作),MERGE(持久化和修改操作),REMOVAL,REFRESH,ALL。
mappedBy属性:建立双向映射时标注对应的EntityBean中的属性名。
主键自动生成:
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
时间等值的映射:
@Temporal(TemporalType.TIMESTAMP)将对象映射成DATA或TIME或TIMESTAMP值,默认TIMESTAMP。
多对多映射时的映射表:
@ManyToMany
@JoinTable(
name="menu_category_relation",
joinColumns=
@JoinColumn(name="menu_id", referencedColumnName="id"),
inverseJoinColumns=
@JoinColumn(name="category_id", referencedColumnName="id")
)
@OrderBy("name ASC")
private List<Category> categories;
会话Bean(Session Bean):
@Stateless
@Path("/orders")
public class DishOrdersBean {
@PersistenceContext
EntityManager em;
@Resource
SessionContext sc;
@PUT
@Consumes("application/json")
@Produces("application/json")
public JSONObject addOrder(JSONObject jo) {}
@POST
@Consumes("application/json")
@Produces("application/json")
public JSONObject updateOrder() {}
@GET
@Path("/list")
@Produces("application/json")
public JSONArray getList() {}
@GET
@Path("/infolist")
@Produces("application/json")
public JSONArray getOrderInfoList() {}
@GET
@Path("/{tableNo}")
@Produces("application/json")
public JSONArray getListByTableNo(@PathParam("tableNo") long tableNo) {}
@POST
@Path("/{orderId}/{status}")
public void updateStatus(@PathParam("orderId") long orderId,@PathParam("status") String status) {}
@DELETE
@Path("/{orderId}")
public void deleteOrder(@PathParam("orderId") String orderIdStr) {}
}