JPA返回空对象
我的用户模型JPA返回空对象,jpa,kotlin,Jpa,Kotlin,我的用户模型 @Entity @Table(name="users") data class User( @Id @GeneratedValue(strategy = GenerationType.IDENTITY) val id: Long = -1, @Column(unique=true) val username: String) : Serializable 数据库中有两条记录 这个问题很好 [2018-02-23T1
@Entity
@Table(name="users")
data class User(
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
val id: Long = -1,
@Column(unique=true)
val username: String) : Serializable
数据库中有两条记录
这个问题很好
[2018-02-23T14:32:07.066+0100][Payara 4.1][FINE]]
[org.eclipse.persistence.session./file:/Users/youri/Downloads/payara41/glassfish/domains/domain1/applications/Kwetter-1.0-SNAPSHOT/WEB-INF/classes/_-Kwetter.sql]
[tid:_ThreadID=28 _ThreadName=http线程池::http-listener-1(4)]
[timeMillis:1519392727066][levelValue:500][[选择ID、用户名
来自用户]]
但它输出两个空对象,而不是两个用户对象
[{},{}]
使用实体管理器的抽象Dao
@Stateless
abstract class Abstract<T : Serializable> {
@PersistenceContext
private lateinit var entityManager: EntityManager
abstract fun getEntityClass(): Class<T>
open fun find(id: Long): T {
return entityManager.find(getEntityClass(), id)
}
// this returns the weird two empty objects
open fun all(): List<T> {
val builder = entityManager.criteriaBuilder
val c = builder.createQuery(getEntityClass())
c.from(getEntityClass())
val query = entityManager.createQuery(c)
return query.resultList
}
}
@无状态
抽象类抽象{
@持久上下文
私有lateinit变量entityManager:entityManager
抽象趣味getEntityClass():类
开放式趣味发现(id:Long):T{
返回entityManager.find(getEntityClass(),id)
}
//这将返回两个空对象
open fun all():列表{
val builder=entityManager.criteriaBuilder
val c=builder.createQuery(getEntityClass())
c、 from(getEntityClass())
val query=entityManager.createQuery(c)
return query.resultList
}
}
您应该使用var
而不是val
,因为Kotlin不会为val
字段设置。JPA需要具有可变属性(即getter和setter)
TLDR:使用
var
而不是val您应该使用var
而不是val
,因为Kotlin不会为val
字段设置。JPA需要具有可变属性(即getter和setter)
TLDR:使用var
而不是val
这两个对象是什么类型的?它应该打印两个序列化的用户对象,但它打印两个空对象…是的,但字符串表示不是最可靠的调试方法。这些元素的类别是什么?i、 e.item::class
的结果是什么?它们似乎不是User
@Moira User::class类型您将属性定义为val,但它们必须是可变的。使用var而不是VAL这两个对象是什么类型的?它应该打印两个序列化的用户对象,但它打印两个空对象…是的,但字符串表示不是最可靠的调试方法。这些元素的类别是什么?i、 e.item::class
的结果是什么?它们似乎不是User
@Moira User::class类型您将属性定义为val,但它们必须是可变的。使用var而不是val