gpt4 book ai didi

java - EclipseLink(非 OSGi)与 EclipseLink JPA 之间的区别

转载 作者:搜寻专家 更新时间:2023-11-01 03:49:09 28 4
gpt4 key购买 nike

加载有什么区别:

<dependency org="org.eclipse.persistence" name="eclipselink" rev="2.5.2"/>

对比

<dependency org="org.eclipse.persistence" name="org.eclipse.persistence.jpa" rev="2.5.2"/>

我可以看到在 maven“EclipseLink”中命名的 Eclipselink 比另一个有更多的类和实用程序......例如目标数据库:

org.eclipse.persistence.platform.database.oracle.OracleXXXPlatform

使用一种或另一种的标准是什么?

谢谢你。

最佳答案

这完全取决于您的要求范围。在我的例子中,我使用了 EclipseLink 来满足我的项目需求。

EclipseLink 的主要优势之一是您可以直接在 JPQL 查询中调用 native SQL 函数。在 Hibernate 中,这不是直接可能的。

带有命名查询的示例实体类-

@Entity
@Table(name = "authorizedUsers", schema = "public")

@NamedQuery(name = "AuthorizedUsers.findByAll",
query = "SELECT a FROM AuthorizedUsers a where a.username = :username and a.password = :password")
public class AuthorizedUsers implements Serializable {
private static final long serialVersionUID = 1L;

@Id
@Column(name = "id")
private Integer id;

@Column(name = "username")
private String username;

@Column(name = "password")
private String password;

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}
};

然后设置查询参数,在上面的例子中我们做了类似的事情-

 public List<AuthorizedUsers> findFragmentByAll(String username, String password)
throws PersistenceException, IllegalStateException {

if (em != null) {
final Query query = em.createNamedQuery("AuthorizedUsers.findByAll");
query.setParameter("username", username);
query.setParameter("password", password);
return query.getResultList();
}

而 em 是实体管理器的一个实例。

关于java - EclipseLink(非 OSGi)与 EclipseLink JPA 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33329533/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com