-
Notifications
You must be signed in to change notification settings - Fork 41.6k
Closed as not planned
Closed as not planned
Copy link
Labels
status: invalidAn issue that we don't feel is validAn issue that we don't feel is valid
Description
Error Log
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v3.1.2)
2023-08-26T13:40:42.279Z INFO 1 --- [ main] .e.h.o.HibernateOrmSpringbootApplication : Starting AOT-processed HibernateOrmSpringbootApplication using Java 17.0.7 with PID 1 (/work/application started by root in /work)
2023-08-26T13:40:42.279Z INFO 1 --- [ main] .e.h.o.HibernateOrmSpringbootApplication : No active profile set, falling back to 1 default profile: "default"
2023-08-26T13:40:42.288Z INFO 1 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2023-08-26T13:40:42.289Z INFO 1 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2023-08-26T13:40:42.289Z INFO 1 --- [ main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.11]
2023-08-26T13:40:42.291Z INFO 1 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2023-08-26T13:40:42.291Z INFO 1 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 12 ms
2023-08-26T13:40:42.297Z INFO 1 --- [ main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default]
2023-08-26T13:40:42.298Z INFO 1 --- [ main] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.2.6.Final
2023-08-26T13:40:42.298Z WARN 1 --- [ main] org.hibernate.orm.deprecation : HHH90000029: The [hibernate.bytecode.use_reflection_optimizer] configuration is deprecated and will be removed. Set the value to [true] to get rid of this warning
2023-08-26T13:40:42.300Z WARN 1 --- [ main] com.zaxxer.hikari.HikariConfig : HikariPool-1 - idleTimeout is close to or more than maxLifetime, disabling it.
2023-08-26T13:40:42.300Z INFO 1 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
2023-08-26T13:40:42.308Z INFO 1 --- [ main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@6f2dd701
2023-08-26T13:40:42.308Z INFO 1 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
2023-08-26T13:40:42.311Z ERROR 1 --- [ main] j.LocalContainerEntityManagerFactoryBean : Failed to initialize JPA EntityManagerFactory: error processing @AttributeBinderType annotation '@org.hibernate.annotations.TenantId()'
2023-08-26T13:40:42.311Z WARN 1 --- [ main] w.s.c.ServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory': error processing @AttributeBinderType annotation '@org.hibernate.annotations.TenantId()'
2023-08-26T13:40:42.311Z INFO 1 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated...
2023-08-26T13:40:42.311Z INFO 1 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed.
2023-08-26T13:40:42.311Z INFO 1 --- [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat]
2023-08-26T13:40:42.312Z ERROR 1 --- [ main] o.s.boot.SpringApplication : Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory': error processing @AttributeBinderType annotation '@org.hibernate.annotations.TenantId()'
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1770) ~[application:6.0.11]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:598) ~[application:6.0.11]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:520) ~[application:6.0.11]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) ~[application:6.0.11]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[application:6.0.11]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) ~[application:6.0.11]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[application:6.0.11]
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1155) ~[application:6.0.11]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932) ~[application:6.0.11]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:608) ~[application:6.0.11]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[application:3.1.2]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:734) ~[application:3.1.2]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:436) ~[application:3.1.2]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:312) ~[application:3.1.2]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306) ~[application:3.1.2]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1295) ~[application:3.1.2]
at com.example.hibernate.orm.HibernateOrmSpringbootApplication.main(HibernateOrmSpringbootApplication.java:10) ~[application:na]
Caused by: org.hibernate.AnnotationException: error processing @AttributeBinderType annotation '@org.hibernate.annotations.TenantId()'
at org.hibernate.boot.model.internal.PropertyBinder.callAttributeBinders(PropertyBinder.java:281) ~[na:na]
at org.hibernate.boot.model.internal.PropertyBinder.lambda$bind$964ff3a4$1(PropertyBinder.java:335) ~[na:na]
at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processSecondPasses(InFlightMetadataCollectorImpl.java:1857) ~[application:6.2.6.Final]
at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processSecondPasses(InFlightMetadataCollectorImpl.java:1814) ~[application:6.2.6.Final]
at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:328) ~[na:na]
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1380) ~[na:na]
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1451) ~[na:na]
at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:75) ~[na:na]
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:376) ~[application:6.0.11]
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) ~[application:6.0.11]
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) ~[application:6.0.11]
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:352) ~[application:6.0.11]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1817) ~[application:6.0.11]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1766) ~[application:6.0.11]
... 16 common frames omitted
Caused by: java.lang.InstantiationException: org.hibernate.binder.internal.TenantIdBinder
at java.base@17.0.7/java.lang.Class.newInstance(DynamicHub.java:639) ~[application:na]
at org.hibernate.boot.model.internal.PropertyBinder.callAttributeBinders(PropertyBinder.java:277) ~[na:na]
... 29 common frames omitted
Caused by: java.lang.NoSuchMethodException: org.hibernate.binder.internal.TenantIdBinder.<init>()
at java.base@17.0.7/java.lang.Class.getConstructor0(DynamicHub.java:3585) ~[application:na]
at java.base@17.0.7/java.lang.Class.newInstance(DynamicHub.java:626) ~[application:na]
... 30 common frames omitted
Steps
build.gradle
plugins {
id 'java'
id 'org.springframework.boot' version '3.1.2'
id 'io.spring.dependency-management' version '1.1.2'
id 'org.hibernate.orm' version '6.2.6.Final'
id 'org.graalvm.buildtools.native' version '0.9.23'
}
java {
sourceCompatibility = '17'
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
runtimeOnly 'org.postgresql:postgresql'
}
application.yml
spring:
jpa:
properties:
hibernate:
multiTenancy: true
tenant_identifier_resolver: com.example.hibernate.orm.config.TenantResolver
TenantResolver.java
public class TenantResolver implements CurrentTenantIdentifierResolver {
@Override
public String resolveCurrentTenantIdentifier() {
return Optional.ofNullable(TenantUtil.getTenantId()).map(Serializable::toString).orElse(null);
}
@Override
public boolean validateExistingCurrentSessions() {
return true;
}
@Override
public boolean isRoot(String tenantId) {
return TenantUtil.ROOT.equals(tenantId);
}
}
User.class
@Entity
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Data
public class SysUser {
@Id
@GeneratedValue(generator = "snowflakeId")
@GenericGenerator(name = "snowflakeId", type = SnowflakeIdGenerator.class)
String id;
String fullName;
@TenantId
String tenantId;
}
Dockerfile
FROM seepine/alpine-glibc
WORKDIR /work/
COPY ./build/native/nativeCompile/springboot-demo /work/application
RUN chmod 775 /work
EXPOSE 8080
CMD ["./application"]
github actions yml
name: Build Images
on:
push:
tags:
- v*
jobs:
build-image:
runs-on: ubuntu-latest
env:
DOCKER_REGISTRY: hub.example.com
DOCKER_USERNAME: seepine
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Graalvm
uses: graalvm/setup-graalvm@v1
with:
java-version: '17'
version: '22.3.2'
components: 'native-image'
cache: 'gradle'
- name: Build Project
run: |
chmod a+x ./gradlew
./gradlew nativeCompile -x test --no-daemon
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker BuildX
uses: docker/setup-buildx-action@v2
- name: Login to DockerHub
uses: docker/login-action@v2
with:
registry: ${{ env.DOCKER_REGISTRY }}
username: ${{ env.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Get Meta
run: |
echo REPO_VERSION=$(echo ${{ github.ref }} | awk -F"/" '{print $3}' | awk -F"v" '{print $2}') >> $GITHUB_ENV
echo REPO_NAME=$(echo ${GITHUB_REPOSITORY} | awk -F"/" '{print $2}') >> $GITHUB_ENV
- name: Build and push
uses: docker/build-push-action@v4
with:
context: .
file: Dockerfile
platforms: |
linux/amd64
linux/arm64
push: true
tags: |
${{ env.DOCKER_REGISTRY }}/${{ env.DOCKER_USERNAME }}/${{ env.REPO_NAME }}:latest
${{ env.DOCKER_REGISTRY }}/${{ env.DOCKER_USERNAME }}/${{ env.REPO_NAME }}:${{ env.REPO_VERSION }}
Metadata
Metadata
Assignees
Labels
status: invalidAn issue that we don't feel is validAn issue that we don't feel is valid