我正在使用 Maven 3、JPA 2.1 和 Hibernate 4.3.5.Final。我想使用 JPA 2.1,因为它提供了几个特性,最显着的是向左外部连接子句添加条件。我在我的 Maven 项目中包含了以下依赖项……

    <dependency> 
        <groupId>org.hibernate.javax.persistence</groupId> 
        <artifactId>hibernate-jpa-2.1-api</artifactId> 
        <version>1.0.0.Final</version> 
    </dependency>    
    <dependency> 
        <groupId>org.hibernate</groupId> 
        <artifactId>hibernate-validator</artifactId> 
        <version>4.3.2.Final</version> 
        <exclusions> 
            <exclusion> 
                <groupId>org.slf4j</groupId> 
                <artifactId>slf4j-api</artifactId> 
            </exclusion> 
        </exclusions> 
    </dependency> 
    <dependency> 
        <groupId>org.hibernate</groupId> 
        <artifactId>hibernate-entitymanager</artifactId> 
        <version>4.3.6.Final</version> 
    </dependency> 
    <dependency> 
        <groupId>org.hibernate</groupId> 
        <artifactId>hibernate-ehcache</artifactId> 
        <version>4.3.6.Final</version> 
    </dependency> 

但是,当我尝试编译以下内容时,在“.on(”子句上出现编译错误(“找不到符号”。

    final CriteriaBuilder cb = m_entityManager.getCriteriaBuilder(); 
    CriteriaQuery<Message> query = cb.createQuery(Message.class); 
    Root<Message> messageRoot = query.from(Message.class); 
    final Join<Message, Group> groupJoin = messageRoot.join(Message_.group); 
    final Join<Message, MessageReadDate> msgReadDateJoin = messageRoot.join(Message_.messageReads, JoinType.LEFT); 
    msgReadDateJoin.on(msgReadDateJoin.get(MessageReadDate_.recipient), recipient); 

我需要在我的 Maven 项目中包含哪些库才能获得 JPA 2.1 以及“join.on”功能?

请您参考如下方法:

这可能是一个 maven 问题。如果下载的 jar 由于某种原因损坏,通常会发生这种情况。删除 .m2 文件夹存储库并再次执行 mvn install ,它应该会带来所有 enw jar 并且编译应该可以工作。

m2文件夹here


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!