这是我的发件人实体
@Entity
public class Sender {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long senderId;
...
...
public long getSenderId() {
return senderId;
}
public void setSenderId(long senderId) {
this.senderId = senderId;
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试执行以下查询时:
StringBuilder query = new StringBuilder();
query.append("Select sender.* ");
query.append("From sender ");
query.append("INNER JOIN coupledsender_subscriber ");
query.append("ON coupledsender_subscriber.Sender_senderId = sender.SenderId ");
query.append("WHERE coupledsender_subscriber.Subscriber_subscriberId = ? ");
SQLQuery q = (SQLQuery) sessionFactory.getCurrentSession().createSQLQuery(query.toString());
q.setResultTransformer(Transformers.aliasToBean(Sender.class));
q.setLong(0, subscriberId);
return q.list();
Run Code Online (Sandbox Code Playgroud)
发生以下错误:
错误:org.hibernate.property.BasicPropertyAccessor - HHH000123:类中的IllegalArgumentException:be.gimme.persistence.entities.Sender,属性的setter方法:senderId
错误:org.hibernate.property.BasicPropertyAccessor - HHH000091:预期类型:long,实际值:java.math.BigInteger
这是因为类Sender中的senderId实际上是一个long而不是BigInteger(由Hibernate返回).
我想知道在这样的情况下最佳做法是什么,我应该使用BigIntegers作为id(看起来有点矫枉过正)?
我应该手动将查询结果转换为类Sender的对象(那会很糟糕)?或者我可以让Hibernate返回longid而不是 …
我正在尝试使用Google云构建器创建构建管道.我开始时非常简单:"mvn clean deploy",我使用的cloudbuild.yaml看起来像这样:
steps:
# Build the application with maven
- name: 'gcr.io/cloud-builders/mvn'
args: ['clean', 'deploy']
Run Code Online (Sandbox Code Playgroud)
这似乎工作,maven部署已启动,但最终我在编译时遇到错误:
Step #1: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-
compiler-plugin:3.1:compile (default-compile) on project codex-core-model:
Fatal error compiling: invalid target release: 1.9 -> [Help 1]
Run Code Online (Sandbox Code Playgroud)
我的项目是用java 9编写的,所以我必须使用jdk9编译它.显然mvn构建器使用jdk8,我使用"mvn --version"检查确定性,并得到以下结果:
Step #1: Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-
04-03T19:39:06Z)
Step #1: Maven home: /usr/share/maven
Step #1: Java version: 1.8.0_171, vendor: Oracle Corporation
Step #1: Java home: /usr/lib/jvm/java-8-openjdk-amd64/jre
Step #1: Default locale: en_US, platform encoding: ANSI_X3.4-1968
Step #1: OS …Run Code Online (Sandbox Code Playgroud)