【发布时间】:2011-11-05 07:16:59
【问题描述】:
我正在使用 EJB 在 netbeans 上编写一个 CRUD 演示代码..当我编写一个可以将数据保存到数据库中的代码时,没有错误和异常但数据没有保存在数据库中 代码:
实体豆:
@Entity
@Table(name = "book_book")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "BookBook.findAll", query = "SELECT b FROM BookBook b"),
@NamedQuery(name = "BookBook.findByIsbn", query = "SELECT b FROM BookBook b WHERE b.isbn = :isbn"),
@NamedQuery(name = "BookBook.findByDealTotal", query = "SELECT b FROM BookBook b WHERE b.dealTotal = :dealTotal"),
@NamedQuery(name = "BookBook.findBySaleTotal", query = "SELECT b FROM BookBook b WHERE b.saleTotal = :saleTotal"),
@NamedQuery(name = "BookBook.findBySalePrice", query = "SELECT b FROM BookBook b WHERE b.salePrice = :salePrice"),
@NamedQuery(name = "BookBook.findByDealPrice", query = "SELECT b FROM BookBook b WHERE b.dealPrice = :dealPrice")})
public class BookBook implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
// @NotNull
@Column(name = "isbn")
private Long isbn;
@Column(name = "deal_total")
private Integer dealTotal;
@Column(name = "sale_total")
private Integer saleTotal;
@Column(name = "sale_price")
private Integer salePrice;
@Column(name = "deal_price")
private Integer dealPrice;
@OneToMany(mappedBy = "isbn")
private List<BookBookdetail> bookBookdetailList;
DAClass(不是会话bean):
EntityManagerFactory factory=Persistence.createEntityManagerFactory("BookXPU");
EntityManager em=factory.createEntityManager();
public long createBook(Long isbn, Integer dealTotal, Integer saleTotal, Integer salePrice, Integer dealPrice){
BookBook book=new BookBook();
book.setDealTotal(dealTotal);
book.setSalePrice(salePrice);
book.setDealTotal(dealTotal);
book.setDealPrice(dealPrice);
book.setIsbn(isbn);
List<BookBookdetail> list=new ArrayList<BookBookdetail>();
book.setBookBookdetailList(null);
em.persist(book);
Query query =em.createQuery("SELECT b FROM BookBook b WHERE b.isbn = :isbn");
query.setParameter("isbn",book);
List list1=query.getResultList();
for (Iterator it = list1.iterator(); it.hasNext();) {
BookBookDetail book1 = (BookBookDetail)it.next();
list.add(book1);
}
book.setBookBookdetailList(list);
em.merge(book);
return book.getIsbn();
}
谢谢...
【问题讨论】:
-
我尝试在 sessionbean 中测试此代码并成功...
-
那么,您确实尝试过并且有效吗?这段代码有问题吗?在数据库中看不到结果还是在代码中使用查询?
-
如果这个代码在一个普通的java类中......我在数据库中看不到结果......我不得不将公共类更改为无状态会话bean......我可以看到结果然后..但是你能告诉我如何更改代码以便在普通 java 类中取得成功