我试图坚持JAXB生成的对象.以下是示例结构:
@Column(name = "reporting_identifier")
private String reportingIdentifier;
@Column(name = "apply_quiet_time")
private boolean applyQuietTime;
@Embedded
private RecipientDetailsList recipientDetailsList;
Run Code Online (Sandbox Code Playgroud)
以下是RecipientDetailsList课程结构:
@ElementCollection(targetClass=String.class)
private List<RecipientDetails> recipientDetails;
Run Code Online (Sandbox Code Playgroud)
现在,RecipientDetails该类有一个参数构造函数,它接受一个String.我希望将字符串作为整个记录的一部分保存在数据库中.我看到了
org.hibernate.InstantiationException:没有实体的默认构造函数:RecipientDetailsList
我尝试保存对象时出现异常.我有两个问题:
我们有关于此例外的任何工作吗?我无法更改类,因为它是为JAXB编组/ unmarhsalling而设计的.我可以以某种方式存储对象而不改变结构吗?此外,我感兴趣的是只存储recipientDetails引用的列表的第一条记录,因为我只想要一行对象.如果它有超过1条记录,我希望它忽略其余的记录.可能吗?
这个好的设计是否可以直接将注释用于由JAXB生成的类中?我应该创建另一个类(可能还有mappers /转换器)来存储和检索信息吗?
我正在使用Java中的google analytics api.我有一个代码从刷新令牌中获取访问令牌.我们将刷新令牌存储在数据库中,并在请求时检索访问令牌.
密码更改后,我们的请求令牌变为无效.因此,我通过浏览网址(https://developers.google.com/oauthplayground)并按照说明生成了新的refreshtoken .我得到了新的刷新令牌.现在,当我执行代码来检索访问令牌时,它会抛出空指针异常.以下是代码:
RefreshTokenRequest request = new GoogleRefreshTokenRequest(HTTP_TRANSPORT, JSON_FACTORY, refreshToken,
this.clientId, this.clientSecret);
TokenResponse response = request.execute();
Run Code Online (Sandbox Code Playgroud)
调用execute方法时,会抛出以下异常:
java.lang.NullPointerException
at com.google.api.client.repackaged.com.google.common.base.Preconditions.checkNotNull(Preconditions.java:191)
at com.google.api.client.util.Preconditions.checkNotNull(Preconditions.java:127)
at com.google.api.client.json.jackson2.JacksonFactory.createJsonParser(JacksonFactory.java:96)
at com.google.api.client.json.JsonObjectParser.parseAndClose(JsonObjectParser.java:85)
at com.google.api.client.json.JsonObjectParser.parseAndClose(JsonObjectParser.java:81)
at com.google.api.client.auth.oauth2.TokenResponseException.from(TokenResponseException.java:88)
at com.google.api.client.auth.oauth2.TokenRequest.executeUnparsed(TokenRequest.java:287)
at com.google.api.client.googleapis.auth.oauth2.GoogleRefreshTokenRequest.execute(GoogleRefreshTokenRequest.java:125)
at com.google.api.client.googleapis.auth.oauth2.GoogleRefreshTokenRequest.execute(GoogleRefreshTokenRequest.java:75)
at GARTest.main(GARTest.java:22)
Run Code Online (Sandbox Code Playgroud)
任何人都可以指出我做错了什么?我可以从google oAuth UI获取访问令牌.
java google-analytics-api google-oauth-java-client google-oauth2