Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Аннотация для CreateOrFindTable / 8 сообщений из 8, страница 1 из 1
29.10.2013, 03:14:27
    #38444350
HOME_X
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аннотация для CreateOrFindTable
Доброго дня господа !
Попытался создать класс(таблицу) используя уроки ютуба

Возник вопрос - как создать таблицу(если ее нет), или ас-
социироваться с ней для редактирования(если она уже есть)

т.е. необходимо выполнить по условию
new SchemaExport(config).create(true, true);
Какие штатные инструменты имеються в наличии в Hibernate ?

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
package Hibernate.Oracle;

import java.util.Calendar;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Table;
import javax.persistence.Id;
import javax.persistence.TableGenerator;

@Entity
@Table(name="UserList")
public class UserList {
	private int Id;
	private String Name;

	@Id
	@Column(name="Id")
	@TableGenerator(name="UserId",
					table="UserId_Key",
					pkColumnName="PrimaryKey",
					pkColumnValue="UserList_Pk",
					allocationSize=1
					)
	@GeneratedValue(strategy=GenerationType.TABLE,
					generator="UserId"
					)
	public int getId() {
		return Id;
	}
	public void setId(int id) {
		Id = id;
	}

	@Column(name="Name")
	public String getName() {
		return Name;
	}
	public void setName(String name) {
		Name = name;
	}
}



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
package Hibernate.Oracle;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.tool.hbm2ddl.SchemaExport;

public class ExeUserList {

	public static void main(String[] args) {
		AnnotationConfiguration config = new AnnotationConfiguration();
		config.addAnnotatedClass(UserList.class);
		config.configure("hibernate.cfg.xml");
		new SchemaExport(config).create(true, true);
		SessionFactory factory = config.buildSessionFactory(); 
		Session session = factory.getCurrentSession();
		session.beginTransaction();
		UserList record0 = new UserList();
        record0.setName("Oslov");
		session.saveOrUpdate(record0);
		UserList record1 = new UserList();
        record1.setName("Kozlov");
		session.saveOrUpdate(record1);
		session.getTransaction().commit();
	}

}
...
Рейтинг: 0 / 0
29.10.2013, 03:23:41
    #38444352
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аннотация для CreateOrFindTable
Хибер по идее автоматом создаёт таблицы если их нет.
Здесь описаны опции
http://stackoverflow.com/questions/306806/hibernate-automatically-creating-updating-the-db-tables-based-on-entity-classes
...
Рейтинг: 0 / 0
29.10.2013, 05:12:12
    #38444363
HOME_X
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аннотация для CreateOrFindTable
maytonХибер по идее автоматом создаёт таблицы если их нет.
Здесь описаны опции
http://stackoverflow.com/questions/306806/hibernate-automatically-creating-updating-the-db-tables-based-on-entity-classes

Принято - получилось !
Насколько понял <property name="hibernate.hbm2ddl.auto" value=" update "/>

Но данный код осуществляет еще и разбор структуры
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
02:05:14,993  INFO TableMetadata:65 - table found: SYS.USERLIST
02:05:14,994  INFO TableMetadata:66 - columns: [id, name]
02:05:14,994  INFO TableMetadata:68 - foreign keys: []
02:05:14,994  INFO TableMetadata:69 - indexes: [sys_c0011250]
02:05:15,013  INFO TableMetadata:65 - table found: SYS.USERLIST
02:05:15,013  INFO TableMetadata:66 - columns: [id, name]
02:05:15,013  INFO TableMetadata:68 - foreign keys: []
02:05:15,013  INFO TableMetadata:69 - indexes: [sys_c0011250]
02:05:15,015  INFO DatabaseMetadata:119 - table not found: sys.UserId_Key
02:05:15,036  INFO TableMetadata:65 - table found: SYS.USERID_KEY
02:05:15,036  INFO TableMetadata:66 - columns: [sequence_next_hi_value, primarykey]
02:05:15,036  INFO TableMetadata:68 - foreign keys: []
02:05:15,037  INFO TableMetadata:69 - indexes: []
02:05:15,037 DEBUG SchemaUpdate:203 - alter table sys.UserList add Address varchar2(255 char)
02:05:15,051  INFO SchemaUpdate:217 - schema update complete
Hibernate: insert into sys.UserList (Address, Name, Id) values (?, ?, ?)
Hibernate: insert into sys.UserList (Address, Name, Id) values (?, ?, ?)



Т.е. затраты времени, мне необходимо, только ассоциировать класс с таблицей и
встаивть запись
Как сделать только это ?
...
Рейтинг: 0 / 0
29.10.2013, 12:18:45
    #38444727
HOME_X
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аннотация для CreateOrFindTable
HOME_X,

Никто не сталкивался с такой ситуацией ?
...
Рейтинг: 0 / 0
29.10.2013, 12:51:15
    #38444809
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аннотация для CreateOrFindTable
[quot
Насколько понял <property name="hibernate.hbm2ddl.auto" value=" update "/>

Но данный код осуществляет еще и разбор структуры

Т.е. затраты времени, мне необходимо, только ассоциировать класс с таблицей и
встаивть запись
Как сделать только это ?[/quot]

Критичные затраты на старте?

<property name="hibernate.hbm2ddl.auto" value=" validate "/> ? Это ? идет проверка что таблица есть.
...
Рейтинг: 0 / 0
29.10.2013, 13:32:02
    #38444919
HOME_X
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аннотация для CreateOrFindTable
Atum1,

Понял - спасибо ...
...
Рейтинг: 0 / 0
30.10.2013, 00:48:33
    #38445979
HOME_X
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аннотация для CreateOrFindTable
HOME_X,

Малость не получаеться ....

Новые вводные
1. Есть таблица Oracle - которая создана в индив. порядке,она партифицирована, разнесена по разным diskspace
2. Можно ли ее ассоциировать с классом при помощи библиотек Hibernate ?
3. Всякое изменение структуры посредством Hibernate по этой таблице - запретить ! (только изменение данных)

Такие действия возможны - и если "ДА" - как именно ?

Заранее благодарен !
...
Рейтинг: 0 / 0
30.10.2013, 00:49:46
    #38445980
HOME_X
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аннотация для CreateOrFindTable
HOME_X,

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


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