小编And*_*310的帖子

这里不允许注释

我正在创建一个实现JpaRepository的UserRepository,并与User实体一起使用.我需要一种方法来更新用户名.我决定在@Query的帮助下完成它.但它的标志是Intellij.这是我的存储库代码:

@Repository
public interface UserRepository extends JpaRepository<User, Long> {

@Modifying
@Query(value = "update User user set user.name= %?username"))
void updatingUser(@Param(value = "username") String username);
}
Run Code Online (Sandbox Code Playgroud)

对于实体:

@Entity
@Table(name = "users")
public class User {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "user_id")
private Long id;

@NotNull
@Column(name = "user_name")
private String username;
}
Run Code Online (Sandbox Code Playgroud)

我遇到了这样一个问题:"这里不允许注释"Intellij Idea说道并用@Query注释标记了这一行.这让我感到困惑

spring annotations intellij-idea spring-data-jpa

9
推荐指数
2
解决办法
2万
查看次数

java.lang.IllegalStateException:不允许在共享 EntityManager 上创建事务 - 请改用 Spring 事务或 EJB CMT

伙计们。我想借助 Hibernate Search 在 Spring Boot 应用程序中创建全文搜索。我遇到了这样的异常:java.lang.IllegalStateException:不允许在共享EntityManager上创建事务 - 请改用Spring事务或EJB CMT。它发生在网上

entityManager.getTransaction().begin();
Run Code Online (Sandbox Code Playgroud)

这是我的代码

@Repository
public class HibernateSearch {
  @PersistenceContext
  private EntityManager entityManager;

  @Transactional
  public List<Manual> fulltextSearching(String keyword){

    FullTextEntityManager fullTextEntityManager =
            org.hibernate.search.jpa.Search.getFullTextEntityManager(entityManager);
    entityManager.getTransaction().begin();

    QueryBuilder qb = fullTextEntityManager.getSearchFactory()
            .buildQueryBuilder().forEntity(Manual.class).get();
    org.apache.lucene.search.Query luceneQuery = qb
            .keyword()
            .onFields("name")
            .matching(keyword)
            .createQuery();

    javax.persistence.Query jpaQuery =
            fullTextEntityManager.createFullTextQuery(luceneQuery, Manual.class);

    @SuppressWarnings("unchecked")
    List<Manual> result =  jpaQuery.getResultList();

    entityManager.getTransaction().commit();
    entityManager.close();
    return result;
}
Run Code Online (Sandbox Code Playgroud)

}

我的实体:

@Entity
@Table(name = "manual")
@Getter
@Setter
@NoArgsConstructor
@Indexed
public class Manual {

  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  @Column(name = "manual_id") …
Run Code Online (Sandbox Code Playgroud)

lucene hibernate-search spring-boot

2
推荐指数
1
解决办法
9245
查看次数