gpt4 book ai didi

java - 由 : org. hibernate.QueryException 引起:无法解析内部枚举类的属性

转载 作者:行者123 更新时间:2023-12-02 05:04:18 24 4
gpt4 key购买 nike

拥有这个域类并在 spring 3.2.4 下使用与 JPA 集成的 hibernate 3.2.6

@Entity
public class PriorityDeviceKeyword {

public enum PriorityDeviceKey {

ALL ("ALL", "ALL DEVICES"),
IOS ("IOS", "IOS"),
ANDROID ("ANDROID","ANDROID");

private final String name;

private final String id;

private PriorityDeviceKey(String name, String id) {
this.name = name;
this.id = id;
}

public String getName() {
return name;
}

public String getId() {
return id;
}
}

@Id
private Long id;

@Column(name = "key")
private PriorityDeviceKey key;


@ManyToMany
@JoinTable(name = "t_priority_device_set", joinColumns = @JoinColumn(name = "priority_device__id", referencedColumnName = "id"))
private List<PriorityDevice> priorityDevices;

public Long getId() {
return id;
}

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

public PriorityDeviceKey getKey() {
return key;
}

public void setKey(PriorityDeviceKey key) {
this.key = key;
}

public List<PriorityDevice> getPriorityDevices() {
return priorityDevices;
}

public void setPriorityDevices(List<PriorityDevice> priorityDevices) {
this.priorityDevices = priorityDevices;
}
}

执行此查询时,我执行的 DAO 类中有以下方法

@Override
@SuppressWarnings("unchecked")
public Set<PriorityDevices> findPriorityAreas(PriorityDevicesKey key) {

String jpql = "from PriorityDevices as pak where pak.key.name = :keyName";

Query query = entityManager.createQuery(jpql);
query.setParameter("keyName", key.getName());
List<PriorityDevices> priorityDevices = query.getResultList();
return new HashSet<PriorityDevices>(priorityDevices);
}

我收到应用程序抛出的异常:

2015-01-14 13:14:50,936 ERROR [com.controller.errors.Error500Controller] - Application thrown an exception
java.lang.IllegalArgumentException: org.hibernate.QueryException: could not resolve property: name of: com.domain.PriorityDevicesKeyword [from com.domain.PriorityDevicesKeyword as
at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:624)
at org.hibernate.ejb.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:96)
at sun.reflect.GeneratedMethodAccessor440.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

最佳答案

认为这些更改可能对您有用:

@Column(name = "key")
@Enumerated(EnumType.STRING)
private PriorityAreaKey key;

String jpql = "from PriorityAreaKeyword as pak where pak.key = :keyName";
Query query = entityManager.createQuery(jpql);
query.setParameter("keyName", key);

关于java - 由 : org. hibernate.QueryException 引起:无法解析内部枚举类的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27942886/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com