Есть 2 таблицы в БД.
1)users (id, name, login, password)
2)MessageSystem(id, from_id, to_id .....)
Поля from_id, to_id
являются внешними ключами и ссылаются на id
у users
.
Вот собственно, что он мне пишет:
org.hibernate.AnnotationException: Use of @OneToMany or @ManyToMany targeting an unmapped class: DataBaseService.dataSets.UsersDataSet.messageDataSet[DataBaseService.dataSets.MessageDataSet]
Код файла UsersDataSet.java
import javax.persistence.*;
import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;
@Entity
@Table(name = "users")
public class UsersDataSet implements Serializable {
private static final long serialVersionUID = -8706689714326132798L;
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column(name = "name", updatable = false, unique = true)
private String name;
@Column(name = "login", updatable = false, unique = true)
private String login;
@Column(name = "password", updatable = false)
private String password;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "fromId")
private Set<MessageDataSet> sendMessage = new HashSet<MessageDataSet>(0);
@OneToMany(fetch = FetchType.LAZY, mappedBy = "toId")
private Set<MessageDataSet> receivedMessage = new HashSet<MessageDataSet>(0);
//setters getters....
Код файла MessageDataSet.java
import javax.persistence.*;
import java.io.Serializable;
@Entity
@Table(name = "messagesystem")
public class MessageDataSet implements Serializable {
@Id
@Column(name = "id_msg")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id_msg;
@Column(name = "body_msg")
private String body_msg;
@Column(name = "date_msg")
private String date_msg;
@Column(name = "sender_del")
private boolean sender_del;
@Column(name = "receiver_del")
private boolean receiver_del;
@Column(name = "receiver_view")
private boolean receiver_view;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "from_id")
private UsersDataSet fromId;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "to_id")
private UsersDataSet toId;
//setters getters...
Скорее всего одна из сущностей просто не упомянута в hibernate.cfg.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
...
<mapping class="com.example.domain.User"/>
<mapping class="com.example.domain.Message"/>
</session-factory>
</hibernate-configuration>
Кроме того, у вас очень много лишнего в классах сущностей и вам стоит поработать над стилем:
Вполне достаточно будет этого:
import java.util.Set;
import java.util.Date;
import javax.persistence.*;
@Entity
public class User {
@Id
@GeneratedValue
Long id;
@Column(nullable = false, updatable = false, unique = true)
private String login;
@Column(nullable = false)
private String password;
@Column
private String name;
@OneToMany
@OrderBy("sent")
private Set<Message> sentMessages;
@OneToMany
@OrderBy("sent")
private Set<Message> receivedMessages;
public User() {}
public User(String login, String password) {
setLogin(login);
setPassword(password);
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return getLogin();
}
}
@Entity
public class Message {
@Id
@GeneratedValue
Long id;
@Temporal(TemporalType.TIMESTAMP)
private Date sent;
@Column(nullable = false)
String text;
@ManyToOne(fetch = FetchType.LAZY, cascade=CascadeType.ALL)
private User from;
@ManyToOne(fetch = FetchType.LAZY, cascade=CascadeType.ALL)
private User to;
public Message() {}
public Message(User from, User to, String text) {
this.from = from;
this.to = to;
this.text = text;
this.sent = new Date();
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
// ... Остальные геттеры и сеттеры
@Override
public String toString() {
return "Message from " + from + " to " + to + ": " + getText();
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Прохожу урок на StartAndroid, возникла ошибка в коде, не могу понять как исправить, нужный класс импортирован, всё переписал как в примере, помогите...
Здравствуйте! У меня такая проблема: браузер Chrome отображает ширину border у html элементов не такую, как задана в стилях, а уменьшенную в 08 раз