Guest User

Untitled

a guest
Aug 4th, 2018
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.03 KB | None | 0 0
  1. JPA DAO Spring: error in the configuration
  2. import java.io.Serializable;
  3. import javax.persistence.*;
  4. import javax.xml.bind.annotation.XmlRootElement;
  5.  
  6. import java.util.Date;
  7. import java.util.Set;
  8.  
  9.  
  10. /**
  11. * The persistent class for the user database table.
  12. *
  13. */
  14. @XmlRootElement(name="User")
  15. @Entity
  16. public class User implements Serializable {
  17. private static final long serialVersionUID = 1L;
  18.  
  19. @Id
  20. private String username;
  21.  
  22. private String cellphone;
  23.  
  24. private int currentlat;
  25.  
  26. private int currentlon;
  27.  
  28. private String email;
  29.  
  30. @Lob()
  31. private byte[] foto;
  32.  
  33. @Temporal( TemporalType.TIMESTAMP)
  34. private Date lastgpsdate;
  35.  
  36. private String name;
  37.  
  38. private String notes;
  39.  
  40. private String password;
  41.  
  42. private String surname;
  43.  
  44. //bi-directional many-to-one association to FavoriteSport
  45. @OneToMany(mappedBy="user")
  46. private Set<FavoriteSport> favoriteSports;
  47.  
  48. //bi-directional many-to-one association to FavoriteSpot
  49. @OneToMany(mappedBy="user")
  50. private Set<FavoriteSpot> favoriteSpots;
  51.  
  52. //bi-directional many-to-one association to FavoriteUser
  53. @OneToMany(mappedBy="user1")
  54. private Set<FavoriteUser> favoriteUsers1;
  55.  
  56. //bi-directional many-to-one association to FavoriteUser
  57. @OneToMany(mappedBy="user2")
  58. private Set<FavoriteUser> favoriteUsers2;
  59.  
  60. //bi-directional many-to-one association to SpotReview
  61. @OneToMany(mappedBy="user")
  62. private Set<SpotReview> spotReviews;
  63.  
  64. //bi-directional many-to-one association to Role
  65. @ManyToOne
  66. @JoinColumn(name="role_idrole")
  67. private Role role;
  68.  
  69. //bi-directional many-to-one association to UserAccount
  70. @OneToMany(mappedBy="user")
  71. private Set<UserAccount> userAccounts;
  72.  
  73. public User() {
  74. }
  75.  
  76. public String getUsername() {
  77. return this.username;
  78. }
  79.  
  80. public void setUsername(String username) {
  81. this.username = username;
  82. }
  83.  
  84. public String getCellphone() {
  85. return this.cellphone;
  86. }
  87.  
  88. public void setCellphone(String cellphone) {
  89. this.cellphone = cellphone;
  90. }
  91.  
  92. public int getCurrentlat() {
  93. return this.currentlat;
  94. }
  95.  
  96. public void setCurrentlat(int currentlat) {
  97. this.currentlat = currentlat;
  98. }
  99.  
  100. public int getCurrentlon() {
  101. return this.currentlon;
  102. }
  103.  
  104. public void setCurrentlon(int currentlon) {
  105. this.currentlon = currentlon;
  106. }
  107.  
  108. public String getEmail() {
  109. return this.email;
  110. }
  111.  
  112. public void setEmail(String email) {
  113. this.email = email;
  114. }
  115.  
  116. public byte[] getFoto() {
  117. return this.foto;
  118. }
  119.  
  120. public void setFoto(byte[] foto) {
  121. this.foto = foto;
  122. }
  123.  
  124. public Date getLastgpsdate() {
  125. return this.lastgpsdate;
  126. }
  127.  
  128. public void setLastgpsdate(Date lastgpsdate) {
  129. this.lastgpsdate = lastgpsdate;
  130. }
  131.  
  132. public String getName() {
  133. return this.name;
  134. }
  135.  
  136. public void setName(String name) {
  137. this.name = name;
  138. }
  139.  
  140. public String getNotes() {
  141. return this.notes;
  142. }
  143.  
  144. public void setNotes(String notes) {
  145. this.notes = notes;
  146. }
  147.  
  148. public String getPassword() {
  149. return this.password;
  150. }
  151.  
  152. public void setPassword(String password) {
  153. this.password = password;
  154. }
  155.  
  156. public String getSurname() {
  157. return this.surname;
  158. }
  159.  
  160. public void setSurname(String surname) {
  161. this.surname = surname;
  162. }
  163.  
  164. public Set<FavoriteSport> getFavoriteSports() {
  165. return this.favoriteSports;
  166. }
  167.  
  168. public void setFavoriteSports(Set<FavoriteSport> favoriteSports) {
  169. this.favoriteSports = favoriteSports;
  170. }
  171.  
  172. public Set<FavoriteSpot> getFavoriteSpots() {
  173. return this.favoriteSpots;
  174. }
  175.  
  176. public void setFavoriteSpots(Set<FavoriteSpot> favoriteSpots) {
  177. this.favoriteSpots = favoriteSpots;
  178. }
  179.  
  180. public Set<FavoriteUser> getFavoriteUsers1() {
  181. return this.favoriteUsers1;
  182. }
  183.  
  184. public void setFavoriteUsers1(Set<FavoriteUser> favoriteUsers1) {
  185. this.favoriteUsers1 = favoriteUsers1;
  186. }
  187.  
  188. public Set<FavoriteUser> getFavoriteUsers2() {
  189. return this.favoriteUsers2;
  190. }
  191.  
  192. public void setFavoriteUsers2(Set<FavoriteUser> favoriteUsers2) {
  193. this.favoriteUsers2 = favoriteUsers2;
  194. }
  195.  
  196. public Set<SpotReview> getSpotReviews() {
  197. return this.spotReviews;
  198. }
  199.  
  200. public void setSpotReviews(Set<SpotReview> spotReviews) {
  201. this.spotReviews = spotReviews;
  202. }
  203.  
  204. public Role getRole() {
  205. return this.role;
  206. }
  207.  
  208. public void setRole(Role role) {
  209. this.role = role;
  210. }
  211.  
  212. public Set<UserAccount> getUserAccounts() {
  213. return this.userAccounts;
  214. }
  215.  
  216. public void setUserAccounts(Set<UserAccount> userAccounts) {
  217. this.userAccounts = userAccounts;
  218. }
  219.  
  220. public interface Dao <E, K> {
  221. void persist(E entity);
  222. void remove(E entity);
  223. E findById(K id);
  224. }
  225.  
  226. import java.lang.reflect.ParameterizedType;
  227. import javax.persistence.EntityManager;
  228. import javax.persistence.PersistenceContext;
  229.  
  230. public abstract class JpaDao <E, K> implements Dao<E, K> {
  231. protected Class<E> entityClass;
  232.  
  233. @PersistenceContext
  234. protected EntityManager entityManager;
  235.  
  236. public JpaDao() {
  237. ParameterizedType genericSuperclass = (ParameterizedType) getClass().getGenericSuperclass();
  238. this.entityClass = (Class<E>) genericSuperclass.getActualTypeArguments()[1];
  239. }
  240.  
  241. public void persist(E entity) { entityManager.persist(entity); }
  242.  
  243. public void remove(E entity) { entityManager.remove(entity); }
  244.  
  245. public E findById(K id) { return entityManager.find(entityClass, id); }
  246. }
  247.  
  248. import org.springframework.stereotype.Repository;
  249.  
  250. @Repository
  251. public class JpaDaoUser extends JpaDao<User, String> implements DaoUser {
  252. }
  253.  
  254. @Configuration
  255. public class JpaConfiguration {
  256.  
  257. @Value("#{dataSource}")
  258. private javax.sql.DataSource dataSource;
  259.  
  260. @Bean
  261. public Map<String, Object> jpaProperties() {
  262. Map<String, Object> props = new HashMap<String, Object>();
  263. props.put("hibernate.dialect", H2Dialect.class.getName());
  264. props.put("hibernate.cache.provider_class", HashtableCacheProvider.class.getName());
  265. return props;
  266. }
  267.  
  268. @Bean
  269. public JpaVendorAdapter jpaVendorAdapter() {
  270. HibernateJpaVendorAdapter hibernateJpaVendorAdapter = new HibernateJpaVendorAdapter();
  271. hibernateJpaVendorAdapter.setShowSql(false);
  272. hibernateJpaVendorAdapter.setGenerateDdl(true);
  273. hibernateJpaVendorAdapter.setDatabase(Database.H2);
  274. return hibernateJpaVendorAdapter;
  275. }
  276.  
  277. @Bean
  278. public PlatformTransactionManager transactionManager() {
  279. return new JpaTransactionManager( localContainerEntityManagerFactoryBean().getObject() );
  280. }
  281.  
  282. @Bean
  283. public LocalContainerEntityManagerFactoryBean localContainerEntityManagerFactoryBean() {
  284. LocalContainerEntityManagerFactoryBean lef = new LocalContainerEntityManagerFactoryBean();
  285. lef.setDataSource(this.dataSource);
  286. lef.setJpaPropertyMap(this.jpaProperties());
  287. lef.setJpaVendorAdapter(this.jpaVendorAdapter());
  288. return lef;
  289. }
  290.  
  291. }
  292.  
  293. @ContextConfiguration
  294. @RunWith(SpringJUnit4ClassRunner.class)
  295. public class UserPersistenceTests {
  296.  
  297. @Autowired
  298. public JpaDaoUser du;
  299.  
  300. @Test
  301. public void test1() throws Exception {
  302. assertEquals("danilo", du.findById("danilo").getUsername());
  303. }
  304.  
  305. }
  306.  
  307. java.lang.IllegalArgumentException: Unknown entity: java.lang.String
  308. at org.hibernate.ejb.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:626)
  309. at org.hibernate.ejb.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:589)
  310. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  311. at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
  312. at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
  313. at java.lang.reflect.Method.invoke(Unknown Source)
  314. at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:365)
  315. at $Proxy26.find(Unknown Source)
  316. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  317. at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
  318. at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
  319. at java.lang.reflect.Method.invoke(Unknown Source)
  320. at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:240)
  321. at $Proxy26.find(Unknown Source)
  322. at com.windy.spring.JpaDao.findById(JpaDao.java:23)
  323. at com.windy.spring.OrderPersistenceTests.testSaveAndGet(OrderPersistenceTests.java:22)
  324. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  325. at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
  326. at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
  327. at java.lang.reflect.Method.invoke(Unknown Source)
  328. at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
  329. at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
  330. at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
  331. at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
  332. at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74)
  333. at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:82)
  334. at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:72)
  335. at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:231)
  336. at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
  337. at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
  338. at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
  339. at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
  340. at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
  341. at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
  342. at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
  343. at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
  344. at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
  345. at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:174)
  346. at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
  347. at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
  348. at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
  349. at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
  350. at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
  351. at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
  352. Caused by: org.hibernate.MappingException: Unknown entity: java.lang.String
  353. at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:691)
  354. at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:92)
  355. at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:1090)
  356. at org.hibernate.impl.SessionImpl.get(SessionImpl.java:1005)
  357. at org.hibernate.impl.SessionImpl.get(SessionImpl.java:998)
  358. at org.hibernate.ejb.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:614)
  359. ... 43 more
  360.  
  361. java.lang.IllegalArgumentException: Unknown entity: java.lang.String
  362. at org.hibernate.ejb.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:626)
  363.  
  364. String string = entityManager.find(String.class, id);
  365.  
  366. public JpaDao() {
  367. ParameterizedType genericSuperclass = (ParameterizedType) getClass().getGenericSuperclass();
  368. this.entityClass = (Class<E>) genericSuperclass.getActualTypeArguments()[1];
  369. }
Add Comment
Please, Sign In to add comment