powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / OJB(связь между двумя таблицами 1:1)
2 сообщений из 2, страница 1 из 1
OJB(связь между двумя таблицами 1:1)
    #32882895
maxq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно установить связь между таблицами 1:1 .

Эту связь я задал в файле repository_user.xml

<!-- Student-->
<class-descriptor
class="ua.ojb.Student"
table="student">

<field-descriptor
name="student_id"
column="student_id"
jdbc-type="INTEGER"
primarykey="true"
/>
<field-descriptor
name="student_surname"
column="student_surname"
jdbc-type="VARCHAR"
/>

<reference-descriptor
name="grant"
class-ref="ua.ojb.Grant"
auto-retrieve="true" >

<foreignkey field-ref="studentid"/>
</reference-descriptor>
</class-descriptor>

<!-- Grant-->
<class-descriptor
class="ua.ojb.Grant"
table="grant">

<field-descriptor
name="grant_id"
column="grant_id"
jdbc-type="INTEGER"
primarykey="true"
/>
<field-descriptor
name="studentid"
column="studentid"
jdbc-type="INTEGER"
/>
<field-descriptor
name="grant_set"
column="grant_set"
jdbc-type="INTEGER"
/>
</class-descriptor>

База на MySql.

Фрагмент bean класов

public class Student {
private Integer student_id;
private String student_surname;
private Grant grant;
.....................................

public class Grant {
private Integer grant_id;
private Integer studentid;
private Integer grant_set;
.....................................


При запуске выдается ошибка :

java.util.NoSuchElementException: Could not obtain next object: Incorrect
field reference "studentid" in org.apache.ojb.broker.metadata.ObjectReferenceDescriptor@19ba640[cascade
delete=false,cascade retrieve=true,cascade store=false,is lazy=false,class
of Items=class ua.ojb.Grant]
at org.apache.ojb.broker.accesslayer.RsIterator.next(Unknown Source)
at org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Unknown Source)
.....................................

Эта ошибка выдается в функцие

public ArrayList getStudents(){
PersistenceBroker broker = null;
ArrayList note = new ArrayList();
Collection res = null;

broker = PersistenceBrokerFactory.defaultPersistenceBroker();

Criteria crit = new Criteria();
QueryByCriteria query = new QueryByCriteria(Student.class,crit);
res = broker.getCollectionByQuery(query);

Iterator iter = res.iterator();
while(iter.hasNext()){
Student student = new Student();
student = (Student)iter.next();
note.add(student);
}

return note;
}

Делал по примерам с ссайта http://db.apache.org/ojb/ ), может у когото есть какой-то пример по этой темме или хто знает какие-то класные ссылки.
Зарание благодарен.
...
Рейтинг: 0 / 0
OJB(связь между двумя таблицами 1:1)
    #32882922
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
max
public class Student {
private Integer student_id;
private String student_surname;
private Grant grant;
.....................................

public class Grant {
private Integer grant_id;
private Integer studentid;
private Integer grant_set;
.....................................


А почему в одном месте student_id, а в другом studentid?
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / OJB(связь между двумя таблицами 1:1)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]