java - Play Framework : Hashtable in a model?

标签 java playframework

我正在尝试创建一个模型,它是一个带有一些访问器方法的哈希表。该模型看起来像这样...

public class MyHash(){
    Hashtable<Integer, CustomObject> hash = new Hashtable<Integer,CustomObject>();
    //few accessor methods here...
}

该类随后在另一个模型中使用。当其他模式像这样启动其变量时......

this.hash = new MyHash();

发生以下异常...

Internal Server Error (500) for request POST /login

Execution exception (In /app/controllers/Security.java around line 70)
IllegalArgumentException occured : No serializer found for class models.MyHash and no properties discovered to create BeanSerializer (to avoid exception, disable   SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) ) (through reference chain:  User["hash"])

play.exceptions.JavaExecutionException: No serializer found for class models.MyHash and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) ) (through reference chain: User["hash"])
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:231)
at Invocation.HTTP Request(Play!)
Caused by: java.lang.IllegalArgumentException: No serializer found for class models.ListOfFilters and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) ) (through reference chain: User["hash"])
at org.codehaus.jackson.map.ObjectMapper._convert(ObjectMapper.java:1784)
at org.codehaus.jackson.map.ObjectMapper.convertValue(ObjectMapper.java:1750)
at play.modules.mongo.MongoMapper.convertValue(MongoMapper.java:12)
at play.modules.mongo.MongoDB.save(MongoDB.java:239)
at models.User.save(User.java)
at controllers.Security.createNewUser(Security.java:70)
at controllers.Security.authenticate(Security.java:36)
at play.utils.Java.invokeStaticOrParent(Java.java:161)
at play.utils.Java.invokeChildOrStatic(Java.java:183)
at controllers.Secure$Security.invoke(Secure.java:187)
at controllers.Secure$Security.access$0(Secure.java:184)
at controllers.Secure.authenticate(Secure.java:64)
at play.mvc.ActionInvoker.invokeWithContinuation(ActionInvoker.java:548)
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:502)
at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:478)
at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:473)
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:161)
... 1 more
Caused by: org.codehaus.jackson.map.JsonMappingException: No serializer found for class models.MyHash and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) ) (through reference chain: User["hash"])
at org.codehaus.jackson.map.ser.StdSerializerProvider$1.serialize(StdSerializerProvider.java:62)
at org.codehaus.jackson.map.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:268)
at org.codehaus.jackson.map.ser.BeanSerializer.serializeFields(BeanSerializer.java:160)
at org.codehaus.jackson.map.ser.BeanSerializer.serialize(BeanSerializer.java:131)
at org.codehaus.jackson.map.ser.StdSerializerProvider._serializeValue(StdSerializerProvider.java:297)
at org.codehaus.jackson.map.ser.StdSerializerProvider.serializeValue(StdSerializerProvider.java:224)
at org.codehaus.jackson.map.ObjectMapper.writeValue(ObjectMapper.java:1030)
at org.codehaus.jackson.map.ObjectMapper._convert(ObjectMapper.java:1777)
... 17 more

最佳答案

我想这会让你成功一半:How do I use JPA to persist a Map (java.util.Map) object inside an entity and ensure the persistence cascades?

但是您仍然需要使 MyHash 本身可序列化,以便框架知道如何将其存储到数据库中:它本身需要成为 @Entity。

关于java - Play Framework : Hashtable in a model?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8849882/

相关文章:

java - 使用 Spring Security 创建自定义登录表单

java - 如何使用 Jacob 从 Java 读取 Excel 个人宏

java - Java图形中绘制平滑曲线

scala - Play Framework - 手动升级到 Web 套接字

java - Play Framework - 是否可以在 Play 中结合使用 Promise 和 WebSocket?

java - 使用 GRPC Java 客户端和 NodeJS 服务器调试 ssl 连接问题

java - 如果元素未存储在数组中,如何从下拉列表中单击选项

playframework - 如何使 typebinder 仅对特定内容类型有效?

java - 玩! Java 8 的框架支持 可选

java - Play-Framework : ClassCastException occured : java. util.LinkedHashMap 无法转换为 models.Systems