Advertisement
Guest User

Untitled

a guest
Mar 28th, 2017
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.46 KB | None | 0 0
  1. CREATE TABLE employee
  2. (
  3. id INT AUTO_INCREMENT PRIMARY KEY,
  4. first_name VARCHAR(50) NOT NULL,
  5. last_name VARCHAR(50) NOT NULL
  6. );
  7.  
  8. CREATE TABLE PUBLIC.employee_snapshot
  9. (
  10. employee_id INT NOT NULL,
  11. effective_date DATE,
  12. department_id INT NOT NULL,
  13. pay_rate NUMBER(12,4) NOT NULL,
  14. CONSTRAINT employee_snapshot_pk PRIMARY KEY (effective_date, employee_id),
  15. CONSTRAINT employee_snapshot_employee_fk FOREIGN KEY (employee_id) REFERENCES EMPLOYEE (ID)
  16. );
  17.  
  18. @Entity
  19. @Table(name = "employee")
  20. @SecondaryTables({
  21. @SecondaryTable(name = "employee_snapshot", pkJoinColumns = {
  22. @PrimaryKeyJoinColumn(name = "employee_id", referencedColumnName = "id"),
  23. @PrimaryKeyJoinColumn(name = "effectiveDate", columnDefinition = "date")
  24. })
  25. })
  26.  
  27. public class Employee {
  28.  
  29. @Id
  30. @GeneratedValue(strategy = GenerationType.AUTO)
  31. private Long id;
  32.  
  33. @Column(name = "first_name")
  34. private String firstName;
  35.  
  36. @Column(name = "last_name")
  37. private String lastName;
  38.  
  39. @Column(name = "department_id", table = "employee_snapshot")
  40. private int departmentId;
  41.  
  42. public Long getId() {
  43. return id;
  44. }
  45.  
  46. public void setId(Long id) {
  47. this.id = id;
  48. }
  49.  
  50. public String getFirstName() {
  51. return firstName;
  52. }
  53.  
  54. public void setFirstName(String firstName) {
  55. this.firstName = firstName;
  56. }
  57.  
  58. public String getLastName() {
  59. return lastName;
  60. }
  61.  
  62. public void setLastName(String lastName) {
  63. this.lastName = lastName;
  64. }
  65.  
  66. public int getDepartmentId() {
  67. return departmentId;
  68. }
  69.  
  70. public void setDepartmentId(int departmentId) {
  71. this.departmentId = departmentId;
  72. }
  73. }
  74.  
  75. Caused by: org.hibernate.AnnotationException: SecondaryTable JoinColumn cannot reference a non primary key
  76. at org.hibernate.cfg.annotations.TableBinder.bindFk(TableBinder.java:623) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
  77. at org.hibernate.cfg.annotations.EntityBinder.bindJoinToPersistentClass(EntityBinder.java:784) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
  78. at org.hibernate.cfg.annotations.EntityBinder.createPrimaryColumnsToSecondaryTable(EntityBinder.java:776) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
  79. at org.hibernate.cfg.annotations.EntityBinder.finalSecondaryTableBinding(EntityBinder.java:704) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
  80. at org.hibernate.cfg.SecondaryTableSecondPass.doSecondPass(SecondaryTableSecondPass.java:29) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
  81. at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processSecondPasses(InFlightMetadataCollectorImpl.java:1655) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
  82. at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processSecondPasses(InFlightMetadataCollectorImpl.java:1620) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
  83. at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:278) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
  84. at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:847) ~[hibernate-entitymanager-5.0.12.Final.jar:5.0.12.Final]
  85. at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:874) ~[hibernate-entitymanager-5.0.12.Final.jar:5.0.12.Final]
  86. at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:60) ~[spring-orm-4.3.7.RELEASE.jar:4.3.7.RELEASE]
  87. at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:353) ~[spring-orm-4.3.7.RELEASE.jar:4.3.7.RELEASE]
  88. at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:370) ~[spring-orm-4.3.7.RELEASE.jar:4.3.7.RELEASE]
  89. at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:359) ~[spring-orm-4.3.7.RELEASE.jar:4.3.7.RELEASE]
  90. at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1687) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
  91. at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1624) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
  92. ... 21 common frames omitted
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement