【发布时间】:2013-04-17 11:08:02
【问题描述】:
我有一个实体 Customer,它映射到一个视图,该视图定义为我的数据库中 Customer、Account 和 Person 之间的一系列连接。
我使用 JSF 2.0 和 Hibernate 设置的 JPA。后备数据库是 MySQL
我的问题是,鉴于我的客户实体已映射到数据库视图这一事实,这会使新客户实体的持久化变得多么复杂?
【问题讨论】:
我有一个实体 Customer,它映射到一个视图,该视图定义为我的数据库中 Customer、Account 和 Person 之间的一系列连接。
我使用 JSF 2.0 和 Hibernate 设置的 JPA。后备数据库是 MySQL
我的问题是,鉴于我的客户实体已映射到数据库视图这一事实,这会使新客户实体的持久化变得多么复杂?
【问题讨论】:
我引用 Adam Bien 的书:
“对于 SQL 查询,视图和表之间没有区别,因此您可以轻松地将 JPA 实体透明地映射到视图。Java 端的代码保持简洁 – 您甚至可以获得更好的性能。有缺点:并非所有视图都是可更新的。视图是否可更新很大程度上取决于复杂性和特定数据库。例如,在 Derby DB 中,所有视图都不可更新。"
http://www.dzone.com/links/r/mapping_jpa_entities_to_sql_views_it_works_even_w.html
【讨论】:
modelDAO.save(model) 更新了视图以及底层的 model_table ... 对我来说似乎很奇怪跨度>