中的注释是否是个坏主意?
javax.persistence包
而不是使用
org.hibernate.annotations注解
我知道使用javax.peristence确实引入了另一个依赖项。但是,如果我忽略了这一点,那么利弊是什么呢?
发布于 2009-03-31 08:31:06
恰恰相反。
Hibernate是javax.persistence的实现,在可能的情况下,您应该使用标准注释(在javax.persistence中)。这样,理论上您可以在其他JPA实现上运行您的代码。
只有当您需要特定于Hibernate的功能时,才应该使用Hibernate注释。
额外的依赖只依赖于JPA接口/注释jar文件,而且非常简单。
发布于 2013-07-17 15:57:02
另一个缺点是:
http://www.mkyong.com/hibernate/cascade-jpa-hibernate-annotation-common-mistake/
在这方面:
@OneToMany(fetch = FetchType.LAZY,
cascade = {CascadeType.PERSIST,CascadeType.MERGE },
mappedBy = "stock")
public Set<StockDailyRecord> getStockDailyRecords() {
return this.stockDailyRecords;
}在这方面:
stockDailyRecords.setStock(stock);
stock.getStockDailyRecords().add(stockDailyRecords);
session.save(stock);
session.getTransaction().commit();因为@OneToMany是来自JPA的,所以它不能工作,它期望JPA级联- javax.persistence.CascadeType。但是,当您使用Hibernate会话保存它时,org.hibernate.engine.Cascade将执行以下检查:
if ( style.doCascade( action ) ) {Hibernate保存进程将导致ACTION_SAVE_UPDATE操作,但是JPA将传递一个ACTION_PERSIST和ACTION_MERGE,它将不匹配并导致级联无法执行。
发布于 2009-12-14 09:10:26
我使用了javax.persistence注释,当我用玻璃鱼替换Tomcat6.0时,Tomcat6.0包含了另一个破坏一切的javax.persistence包。我不认为使用javax.persistence注释是个好主意。上帝知道Tomcat和javax.persistence到底发生了什么事!
https://stackoverflow.com/questions/700558
复制相似问题