четверг, 17 июля 2014 г.
первая тысяча
Да да, первая тысяча километров на велосипеде в этом сезоне. Первый раз в жизни 1000 км за сезон. Очень доволен собой и всеми вокруг :)
среда, 16 июля 2014 г.
Часы с гэпээсом
Приобрёл для протоколирования своих мощных забегов. Первые впечатления сугубо положительные: расстояние меняется отменно, время кажется точно, плюс пять к скорости.
четверг, 3 июля 2014 г.
Hibernate : mapping entities without foreign key association
Got a challenge today.
Let's say we have some tables with classificator data, and we need to store translations of the classificators.
One solution is to get a translation table with fields:
- ID (generated Primary Key)
- TABLE_NAME (for which table the translation is created)
- TABLE_ID (PrimaryKey value for particular classificator recordof )
- LANG
- TRANSLATION_VALUE (some text in particular language)
The problem is that there is no any foreign key between Classificator table and Translation table.
I thried to solve the problem using @Loader annotation, but it seems that this functionality is buggy.
The final solution, which seems to work, is using @JoinColumnsOrFormulas annotation:
Let's say we have some tables with classificator data, and we need to store translations of the classificators.
One solution is to get a translation table with fields:
- ID (generated Primary Key)
- TABLE_NAME (for which table the translation is created)
- TABLE_ID (PrimaryKey value for particular classificator recordof )
- LANG
- TRANSLATION_VALUE (some text in particular language)
The problem is that there is no any foreign key between Classificator table and Translation table.
I thried to solve the problem using @Loader annotation, but it seems that this functionality is buggy.
The final solution, which seems to work, is using @JoinColumnsOrFormulas annotation:
@Entity @Table(name = "i18n_translation")
public class I18nTranslation extends AbstractManagedEntity {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "table_name") private String tableName;
@Column(name = "table_id") private String tableId;
@Column(name = "lang_code", nullable = false) private String lang;
@Basic @Column private String translation;
///Boilerplate ///
}
@Entity @Table( name="producer_type")
public class ProducerType extends AbstractDeletableEntity{
@Id private Long id;
@Basic private String descr;
@OneToMany(fetch = FetchType.EAGER)
@Where(clause = "table_name='producer_type'")
@JoinColumnsOrFormulas( {@JoinColumnOrFormula(column = @JoinColumn(name = "table_id")) } )
private Set translations;
///Boilerplate ///
}
Подписаться на:
Комментарии (Atom)