我在多对多关系方面遇到问题。表格为:成分和营养价值。我创建了两个实体之间的关系表,其中有成分和营养价值的外部键(形成复合键)和一些属性。
班级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) 我正在尝试进行一个简单的查询。我创建了一个实现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)