小编Fra*_*sco的帖子

无法通过反射设置字段值

我在多对多关系方面遇到问题。表格为:成分和营养价值。我创建了两个实体之间的关系表,其中有成分和营养价值的外部键(形成复合键)和一些属性。

班级JoinedNutrionalValueIngredient

import lombok.Data;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

@Entity @Data
public class JoinedNutrionalValueIngredient implements Serializable {

    @EmbeddedId
    private NutrionalValueIngredientId id;

    @ManyToOne(fetch= FetchType.LAZY)
    @MapsId("ingredient_id")
    private Ingredient ingredient;

    @ManyToOne(fetch=FetchType.LAZY)
    @MapsId("nutrional_value_id")
    private NutrionalValue nutrionalValue;

    @NotNull
    String matrixUnit;

    @NotNull
    int value;

    @NotNull
    String valueType;
}
Run Code Online (Sandbox Code Playgroud)

班级NutrionalValueIngredientId

import javax.persistence.*;
import java.io.Serializable;
import java.util.Objects;

@Embeddable
@Getter
@Setter
public class NutrionalValueIngredientId implements Serializable{

    @Column(name = "ingredient_id")
    private Long ingredient_id;

    @Column(name = "nutrional_value_id")
    private Long nutrional_value_id;

    public NutrionalValueIngredientId() {
        
    }   
   
    public NutrionalValueIngredientId(Long …
Run Code Online (Sandbox Code Playgroud)

java spring hibernate jpa spring-boot

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

找不到类型类 java.lang.String 的 PersistentEntity

我正在尝试进行一个简单的查询。我创建了一个实现customizedPlaceRepository 的customizedPlaceRepositoryImpl 类。问题是,当我尝试在浏览器中调用端点时,它返回“java.lang.IllegalArgumentException:找不到类型类 java.lang.String 的 PersistentEntity!” 如何将 getResultList() 转换为 String

定制的PlaceRepositoryImpl

public class customizedPlaceRepositoryImpl implements customizedPlaceRepository {

    @PersistenceContext
    private EntityManager entityManager;

    @Override
    public List<String> findAllDistinctPlaceName() {
        String qlQuery = "SELECT name FROM place";
        Query query = entityManager.createNativeQuery(qlQuery);
        List<String> result = new ArrayList<>();
        for(Object o: query.getResultList()){
            result.add((String)o);
        }
    return result;
    }
}
Run Code Online (Sandbox Code Playgroud)

定制化地点存储库

public interface customizedPlaceRepository {
    List<String> findAllDistinctPlaceName();
}
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪

java.lang.IllegalArgumentException: Couldn't find PersistentEntity for type class java.lang.String!
    at org.springframework.data.mapping.context.PersistentEntities.lambda$getRequiredPersistentEntity$2(PersistentEntities.java:96) ~[spring-data-commons-2.1.4.RELEASE.jar:2.1.4.RELEASE]
    at java.util.Optional.orElseThrow(Optional.java:290) ~[na:1.8.0_201]
    at org.springframework.data.mapping.context.PersistentEntities.getRequiredPersistentEntity(PersistentEntities.java:95) ~[spring-data-commons-2.1.4.RELEASE.jar:2.1.4.RELEASE]
    at org.springframework.data.rest.webmvc.PersistentEntityResourceAssembler.wrap(PersistentEntityResourceAssembler.java:72) ~[spring-data-rest-webmvc-3.1.4.RELEASE.jar:3.1.4.RELEASE] …
Run Code Online (Sandbox Code Playgroud)

java spring-data spring-data-jpa spring-data-rest

5
推荐指数
1
解决办法
1万
查看次数