String a = new String("foo");
String b = new String("foo");
System.out.println(a == b); // prints false
System.out.println(a.equals(b)); // prints true
Убедитесь, что вы понимаете, почему. Это потому, что сравнение ==
сравнивает только ссылки; equals()
метод сопоставляет содержимое по символу.
Когда вы вызываете new для a
и b
, каждый получает новую ссылку, указывающую на "foo"
в таблице строк. Ссылки разные, но контент один и тот же.
Я думаю, что исключение, которое вы опубликовали, вызвано тем, что нет единицы постоянства, которая соответствует имени, которое вы передали в Persistence.createEntityManagerFactory. В вашем случае:
<persistence-unit name="TimeEven DataBasePU">
Итак, можете ли вы проверить свой persistence.xml
, если вы уверены, что имя единицы персистентности совпадает с тем, что вы написали в коде?
Или, опубликовать свой [ 113] может быть полезно для решения вашей проблемы.
РЕДАКТИРОВАТЬ 1: Можете ли вы проверить свои зависимости?
Если вы используете maven (pom.xml), он должен иметь:
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>javax.persistence</artifactId>
<version>2.1.1</version>
<scope>provided</scope>
</dependency>