Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE TABLE employee
- (
- id INT AUTO_INCREMENT PRIMARY KEY,
- first_name VARCHAR(50) NOT NULL,
- last_name VARCHAR(50) NOT NULL
- );
- CREATE TABLE PUBLIC.employee_snapshot
- (
- employee_id INT NOT NULL,
- effective_date DATE,
- department_id INT NOT NULL,
- pay_rate NUMBER(12,4) NOT NULL,
- CONSTRAINT employee_snapshot_pk PRIMARY KEY (effective_date, employee_id),
- CONSTRAINT employee_snapshot_employee_fk FOREIGN KEY (employee_id) REFERENCES EMPLOYEE (ID)
- );
- @Entity
- @Table(name = "employee")
- @SecondaryTables({
- @SecondaryTable(name = "employee_snapshot", pkJoinColumns = {
- @PrimaryKeyJoinColumn(name = "employee_id", referencedColumnName = "id"),
- @PrimaryKeyJoinColumn(name = "effectiveDate", columnDefinition = "date")
- })
- })
- public class Employee {
- @Id
- @GeneratedValue(strategy = GenerationType.AUTO)
- private Long id;
- @Column(name = "first_name")
- private String firstName;
- @Column(name = "last_name")
- private String lastName;
- @Column(name = "department_id", table = "employee_snapshot")
- private int departmentId;
- public Long getId() {
- return id;
- }
- public void setId(Long id) {
- this.id = id;
- }
- public String getFirstName() {
- return firstName;
- }
- public void setFirstName(String firstName) {
- this.firstName = firstName;
- }
- public String getLastName() {
- return lastName;
- }
- public void setLastName(String lastName) {
- this.lastName = lastName;
- }
- public int getDepartmentId() {
- return departmentId;
- }
- public void setDepartmentId(int departmentId) {
- this.departmentId = departmentId;
- }
- }
- Caused by: org.hibernate.AnnotationException: SecondaryTable JoinColumn cannot reference a non primary key
- at org.hibernate.cfg.annotations.TableBinder.bindFk(TableBinder.java:623) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
- at org.hibernate.cfg.annotations.EntityBinder.bindJoinToPersistentClass(EntityBinder.java:784) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
- at org.hibernate.cfg.annotations.EntityBinder.createPrimaryColumnsToSecondaryTable(EntityBinder.java:776) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
- at org.hibernate.cfg.annotations.EntityBinder.finalSecondaryTableBinding(EntityBinder.java:704) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
- at org.hibernate.cfg.SecondaryTableSecondPass.doSecondPass(SecondaryTableSecondPass.java:29) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
- at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processSecondPasses(InFlightMetadataCollectorImpl.java:1655) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
- at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processSecondPasses(InFlightMetadataCollectorImpl.java:1620) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
- at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:278) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
- at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:847) ~[hibernate-entitymanager-5.0.12.Final.jar:5.0.12.Final]
- at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:874) ~[hibernate-entitymanager-5.0.12.Final.jar:5.0.12.Final]
- at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:60) ~[spring-orm-4.3.7.RELEASE.jar:4.3.7.RELEASE]
- at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:353) ~[spring-orm-4.3.7.RELEASE.jar:4.3.7.RELEASE]
- at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:370) ~[spring-orm-4.3.7.RELEASE.jar:4.3.7.RELEASE]
- at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:359) ~[spring-orm-4.3.7.RELEASE.jar:4.3.7.RELEASE]
- at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1687) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
- at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1624) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
- ... 21 common frames omitted
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement