Hibernate JPA序列(非Id)(Hibernate JPA Sequence (non-Id))
对于不是标识符的某些列可能使用DB序列, 不是组合标识符的一部分 ?
我使用hibernate作为jpa提供程序,我有一个表,它有一些列是生成值(使用序列),尽管它们不是标识符的一部分。
我想要的是使用一个序列为一个实体创建一个新的值,其中序列的列不是主键的一部分:
@Entity @Table(name = "MyTable") public class MyEntity { //... @Id //... etc public Long getId() { return id; } //note NO @Id here! but this doesn't work... @GeneratedValue(strategy = GenerationType.AUTO, generator = "myGen") @SequenceGenerator(name = "myGen", sequenceName = "MY_SEQUENCE") @Column(name = "SEQ_VAL", unique = false, nullable = false, insertable = true, updatable = true) public Long getMySequencedValue(){ return myVal; } }
然后当我这样做:
em.persist(new MyEntity());
该ID将被生成,但
mySequenceVal
属性也将由我的JPA提供者生成。只是为了使事情清晰:我希望Hibernate生成
mySequencedValue
属性的值。 我知道Hibernate可以处理数据库生成的值,但是我不想使用触发器或Hibernate以外的其他任何东西来生成我的属性的值。 如果Hibernate可以为主键生成值,为什么不能生成一个简单的属性?Is it possible to use a DB sequence for some column that is not the identifier/is not part of a composite identifier?
I'm using hibernate as jpa provider, and I have a table that has some columns that are generated values (using a sequence), although they are not part of the identifier.
What I want is to use a sequence to create a new value for an entity, where the column for the sequence is NOT (part of) the primary key:
@Entity @Table(name = "MyTable") public class MyEntity { //... @Id //... etc public Long getId() { return id; } //note NO @Id here! but this doesn't work... @GeneratedValue(strategy = GenerationType.AUTO, generator = "myGen") @SequenceGenerator(name = "myGen", sequenceName = "MY_SEQUENCE") @Column(name = "SEQ_VAL", unique = false, nullable = false, insertable = true, updatable = true) public Long getMySequencedValue(){ return myVal; } }
Then when I do this:
em.persist(new MyEntity());
the id will be generated, but the
mySequenceVal
property will be also generated by my JPA provider.Just to make things clear: I want Hibernate to generate the value for the
mySequencedValue
property. I know Hibernate can handle database-generated values, but I don't want to use a trigger or any other thing other than Hibernate itself to generate the value for my property. If Hibernate can generate values for primary keys, why can't it generate for a simple property?
原文:https://stackoverflow.com/questions/277630
最满意答案
implode(' ', array_slice(explode(' ', $sentence), 0, 10));
为了增加对逗号和破折号等其他单词的支持,
preg_match
提供了一种快速的方式,不需要分割字符串:function get_words($sentence, $count = 10) { preg_match("/(?:\w+(?:\W+|$)){0,$count}/", $sentence, $matches); return $matches[0]; }
如Pebbl所说,PHP不会处理UTF-8或Unicode,所以如果这是一个问题,那么你可以将
\w
替换为[^\s,\.;\?\!]
和\W
[\s,\.;\?\!]
。implode(' ', array_slice(explode(' ', $sentence), 0, 10));
To add support for other word breaks like commas and dashes,
preg_match
gives a quick way and doesn't require splitting the string:function get_words($sentence, $count = 10) { preg_match("/(?:\w+(?:\W+|$)){0,$count}/", $sentence, $matches); return $matches[0]; }
As Pebbl mentions, PHP doesn't handle UTF-8 or Unicode all that well, so if that is a concern then you can replace
\w
for[^\s,\.;\?\!]
and\W
for[\s,\.;\?\!]
.
相关问答
更多-
implode(' ', array_slice(explode(' ', $sentence), 0, 10)); 为了增加对逗号和破折号等其他单词的支持, preg_match提供了一种快速的方式,不需要分割字符串: function get_words($sentence, $count = 10) { preg_match("/(?:\w+(?:\W+|$)){0,$count}/", $sentence, $matches); return $matches[0]; } 如Pebbl所 ...
-
丢弃搜索词之前和之后的所有字符,但前10个字(Discard all characters but the first 10 words before and after a search term)[2022-01-25]
如果您遇到了回溯限制的问题,通常需要查看一次只有子模式 。 在这种情况下,你的主要问题似乎是(?:.*?)后跟(?:\w+\W+){0,10} 。 以字符串'hello world!'为例,暂时忽略{0,10} 。 这将匹配以下所有两种模式: ''和'你好' 'h'和'ello' '他'和'llo' 'hel'和'lo' '地狱'和'o' '你好'和'世界'! '你好w'和'orld!' '你好我'和'rld!' 'hello wor'和'ld!' '你好世界'和'd!' 阻止此冗余回溯的最简单方法是在(? ... -
确保$sentence只有包含你喂食它的第一行,才会到达这行代码。 Make sure that $sentence only contains the first line of whatever you're feeding it, before it ever gets to this line of code.
-
strtok()修改它传递的字符串。 你给它一个不能修改的字符串。 尝试: char sentence[] = "this is a token"; 这将使sentence成为可修改的字符数组。 另外请记住,复制令牌的循环不会在每个条目的末尾放置空终止符 - 我怀疑您可能会需要这些。 也许尝试: strcpy(words[j], tokenPtr); 其他你应该考虑的事情包括: 处理可能太长的令牌 得到一个带有太多令牌的字符串 如果令牌之间有多个空格,需要做什么 - strtok()不会处理这个问题,如 ...
-
查找句子的中间十个字符+在每行上打印更多文本(Finding the middle ten characters of a sentence + printing more text on each line)[2022-05-28]
尝试这个: String sentence = "He went to Accra today"; while((sentence.length() < 10) || (sentence.length() > 10)){ sentence = sentence.substring(1); sentence = sentence.substring(0,sentence.length()-1); } System.out.println("Mid ... -
如何使用两个for循环随机替换句子中的多个单词(How to use two for loops to randomly replace multiple words in a sentence)[2023-01-03]
在对一个形容词进行检查之前,你正在增加,这意味着你在那里进行的替换你基本上得到了: if word == "*adj": wordChoice = random.choice(adjectives) sentence[(indexCount+1)] = wordChoice 这解释了为什么“* adj” 之后的单词一词被修改。 取而代之的是在检查形容词后移动indexCount的增量。 最好是使用enumerate来获得索引: for idx, word in enumerate(sent ... -
MySQL版本 SELECT id, SUBSTRING_INDEX('hello UK', ' ', -1) as word WHERE LENGHT(word) > 1 OracleDB版本(您必须使用的版本) SELECT id, SUBSTR('hello UK', INSTR('hello UK', ' ')) as word WHERE LENGHT(word) > 1 将在两种情况下返回{id}:UK 别忘了用好的专栏名称替换'hello UK':) 这里是与INSTR一起使用的SUBST ...
-
如何匹配PostgreSQL中句子中的最后两个单词?(How can I match the last two words in a sentence in PostgreSQL?)[2023-12-20]
您应该在模式中使用双重转义,因为它似乎关闭了PostgreSQL实例的standard_conforming_strings参数。 请参阅PostgreSQL 9.5.3文档 : standard_conforming_strings (boolean) 它控制普通字符串文字( '...' )是否按字面意思处理反斜杠,如SQL标准中所指定的那样。 从PostgreSQL 9.1开始,默认打开(先前版本默认为关闭)。 因此,您需要使用 '[^ ]+\\s+[^ ]+$' ^^ 要么 '\\S+\ ... -
你最好在你的Regex中改变一点,然后使用explode将它们放在一个数组中,然后用循环打印出句子。对于第一个粗体部分,然后使用下面的代码。 My username here Address: Bangladesh. Mobile: xxxxxx'; preg_match("'(.*?)'si", $text, $match); echo $match[0]; ?> 对于所有粗体搜索使用此 My username here Address: Bangladesh. ...
相关文章
更多- hibernate id 生成策略及主要使用方法
- jpa与hibernate注解混合使用
- JPA ORM框架介绍
- Hibernate马士兵
- 关于hibernate的saveorupdate
- Hibernate 注释方式示例
- spring 3.0 和jpa 整合 用jboss
- JPA环境配置
- 基于annotation(注解)的hibernate4.1的入门初步
- hibernate查询缓存
最新问答
更多- 获取MVC 4使用的DisplayMode后缀(Get the DisplayMode Suffix being used by MVC 4)
- 如何通过引用返回对象?(How is returning an object by reference possible?)
- 矩阵如何存储在内存中?(How are matrices stored in memory?)
- 每个请求的Java新会话?(Java New Session For Each Request?)
- css:浮动div中重叠的标题h1(css: overlapping headlines h1 in floated divs)
- 无论图像如何,Caffe预测同一类(Caffe predicts same class regardless of image)
- xcode语法颜色编码解释?(xcode syntax color coding explained?)
- 在Access 2010 Runtime中使用Office 2000校对工具(Use Office 2000 proofing tools in Access 2010 Runtime)
- 从单独的Web主机将图像传输到服务器上(Getting images onto server from separate web host)
- 从旧版本复制文件并保留它们(旧/新版本)(Copy a file from old revision and keep both of them (old / new revision))
- 西安哪有PLC可控制编程的培训
- 在Entity Framework中选择基类(Select base class in Entity Framework)
- 在Android中出现错误“数据集和渲染器应该不为null,并且应该具有相同数量的系列”(Error “Dataset and renderer should be not null and should have the same number of series” in Android)
- 电脑二级VF有什么用
- Datamapper Ruby如何添加Hook方法(Datamapper Ruby How to add Hook Method)
- 金华英语角.
- 手机软件如何制作
- 用于Android webview中图像保存的上下文菜单(Context Menu for Image Saving in an Android webview)
- 注意:未定义的偏移量:PHP(Notice: Undefined offset: PHP)
- 如何读R中的大数据集[复制](How to read large dataset in R [duplicate])
- Unity 5 Heighmap与地形宽度/地形长度的分辨率关系?(Unity 5 Heighmap Resolution relationship to terrain width / terrain length?)
- 如何通知PipedOutputStream线程写入最后一个字节的PipedInputStream线程?(How to notify PipedInputStream thread that PipedOutputStream thread has written last byte?)
- python的访问器方法有哪些
- DeviceNetworkInformation:哪个是哪个?(DeviceNetworkInformation: Which is which?)
- 在Ruby中对组合进行排序(Sorting a combination in Ruby)
- 网站开发的流程?
- 使用Zend Framework 2中的JOIN sql检索数据(Retrieve data using JOIN sql in Zend Framework 2)
- 条带格式类型格式模式编号无法正常工作(Stripes format type format pattern number not working properly)
- 透明度错误IE11(Transparency bug IE11)
- linux的基本操作命令。。。