0

我收到了错误No property u found for type com.models.entities.OrderEntity,我一生都无法弄清楚如何调试它的来源。我猜有一些不正确的映射。

我试过启用log4j它只给我关于org.hibernate. 我尝试添加其他包,但没有被读取。我相信我log4j.properties的位置正确。

在此处输入图像描述

log4j.properties内容:

log4j.rootCategory=DEBUG, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %t %c:%L - %m%n

log4j.category.org.springframework.data=DEBUG,stdout
log4j.category.com.models.entities =DEBUG,stdout

我可以做些什么来确保 log4j 正在记录正确的包?

我的实体:

@Entity
@Table(name = "`Order`")
@NamedQueries({
        @NamedQuery(name="Order.findByUUID", query="SELECT o FROM OrderEntity o WHERE o.uuid = :uuid"),
        @NamedQuery(name="Order.findByInProduction", query="SELECT o FROM OrderEntity o WHERE o.inProduction = :inProduction")
})
public class OrderEntity {
    private Integer id;

    @javax.persistence.Column(name = "id", nullable = false, insertable = true, updatable = true, length = 10, precision = 0)
    @GeneratedValue
    @Id
    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    private String uuid;

    @javax.persistence.Column(name = "uuid", nullable = false, insertable = true, updatable = true, length = 128, precision = 0)
    @Basic
    public String getUuid() {
        return uuid;
    }

    public void setUuid(String uuid) {
        this.uuid = uuid;
    }

    private Boolean inProduction;

    @javax.persistence.Column(name = "in_production", nullable = false, insertable = true, updatable = true, length = 0, precision = 0)
    @Basic
    public Boolean getInProduction() {
        return inProduction;
    }

    public void setInProduction(Boolean inProduction) {
        this.inProduction = inProduction;
    }

    private Timestamp updated;

    @javax.persistence.Column(name = "updated", nullable = true, insertable = true, updatable = true, length = 19, precision = 0)
    @Basic
    public Timestamp getUpdated() {
        return updated;
    }

    public void setUpdated(Timestamp updated) {
        this.updated = updated;
    }

    private Timestamp created;

    @javax.persistence.Column(name = "created", nullable = false, insertable = true, updatable = true, length = 19, precision = 0)
    @Basic
    public Timestamp getCreated() {
        return created;
    }

    public void setCreated(Timestamp created) {
        this.created = created;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        OrderEntity that = (OrderEntity) o;

        if (created != null ? !created.equals(that.created) : that.created != null) return false;
        if (id != null ? !id.equals(that.id) : that.id != null) return false;
        if (inProduction != null ? !inProduction.equals(that.inProduction) : that.inProduction != null) return false;
        if (updated != null ? !updated.equals(that.updated) : that.updated != null) return false;
        if (uuid != null ? !uuid.equals(that.uuid) : that.uuid != null) return false;

        return true;
    }

    @Override
    public int hashCode() {
        int result = id != null ? id.hashCode() : 0;
        result = 31 * result + (uuid != null ? uuid.hashCode() : 0);
        result = 31 * result + (inProduction != null ? inProduction.hashCode() : 0);
        result = 31 * result + (updated != null ? updated.hashCode() : 0);
        result = 31 * result + (created != null ? created.hashCode() : 0);
        return result;
    }

    private VendorEntity vendor;

    @ManyToOne
    @javax.persistence.JoinColumn(name = "vendor_id", referencedColumnName = "id", nullable = false)
    public VendorEntity getVendor() {
        return vendor;
    }

    public void setVendor(VendorEntity vendor) {
        this.vendor = vendor;
    }

    private ShippingDestinationEntity shippingDestination;

    @ManyToOne
    @javax.persistence.JoinColumn(name = "shipping_destination_id", referencedColumnName = "id", nullable = false)
    public ShippingDestinationEntity getShippingDestination() {
        return shippingDestination;
    }

    public void setShippingDestination(ShippingDestinationEntity shippingDestination) {
        this.shippingDestination = shippingDestination;
    }

    private Collection<OrderCustomFieldEntity> orderCustomFields;

    @OneToMany(mappedBy = "order")
    public Collection<OrderCustomFieldEntity> getOrderCustomFields() {
        return orderCustomFields;
    }

    public void setOrderCustomFields(Collection<OrderCustomFieldEntity> orderCustomFields) {
        this.orderCustomFields = orderCustomFields;
    }

    private Collection<ProductEntity> products;

    @OneToMany(mappedBy = "order")
    public Collection<ProductEntity> getProducts() {
        return products;
    }

    public void setProducts(Collection<ProductEntity> products) {
        this.products = products;
    }
}

堆栈跟踪:

Caused by: org.springframework.data.mapping.PropertyReferenceException: No property u found for type com.models.entities.OrderEntity
    at org.springframework.data.mapping.PropertyPath.<init>(PropertyPath.java:75)
    at org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:327)
    at org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:353)
    at org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:307)
    at org.springframework.data.mapping.PropertyPath.from(PropertyPath.java:271)
    at org.springframework.data.mapping.PropertyPath.from(PropertyPath.java:245)
    at org.springframework.data.repository.query.parser.Part.<init>(Part.java:72)
    at org.springframework.data.repository.query.parser.PartTree$OrPart.<init>(PartTree.java:180)
    at org.springframework.data.repository.query.parser.PartTree$Predicate.buildTree(PartTree.java:260)
    at org.springframework.data.repository.query.parser.PartTree$Predicate.<init>(PartTree.java:240)
    at org.springframework.data.repository.query.parser.PartTree.<init>(PartTree.java:71)
    at org.springframework.data.jpa.repository.query.PartTreeJpaQuery.<init>(PartTreeJpaQuery.java:57)
    at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$CreateQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:90)
    at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$CreateIfNotFoundQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:162)
    at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$AbstractQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:68)
    at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.<init>(RepositoryFactorySupport.java:279)
    at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:147)
    at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.getObject(RepositoryFactoryBeanSupport.java:153)
    at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.getObject(RepositoryFactoryBeanSupport.java:43)
    at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:142)
    ... 26 more

更新:我刚刚从数据库中删除并重新生成了实体,但仍然收到相同的错误。

4

2 回答 2

2

事实证明,这个问题是由与我的存储库层的冲突引起的。尽管我有一个Order.findByUUID命名查询并且我OrderRepository看起来像:

@Repository
public interface OrderRepository extends JpaRepository<OrderEntity, Integer> {
    OrderEntity findByUUID(@Param("uuid") String uuid);

    List<OrderEntity> findByInProduction(@Param("inProduction") Boolean inProduction);
}

删除命名查询并将上述方法更改findByUuid为解决方案。我仍然不确定它为什么会失败,但这让我摆脱了这个问题并开始调试应用程序。

于 2013-04-09T13:47:01.730 回答
1

stacktrace 显示您有一个 JPQL 查询(repository.query.parser行),其中包括类似于.u某些类型的对象的内容OrderEntity。也许文本搜索.u.u<space>将帮助您发现问题?

它不必在OrderEntity类本身中。

于 2013-04-06T11:59:37.217 回答